Keith Mukai Profile picture
Feb 7 13 tweets 6 min read
#ProofOfWork for @SeedSigner Week 4:

v0.5.0 PSBT flow getting so close to a complete first draft!

Nothing is final, but we've figured out solutions for so many of the challenging UI and complex tech problems in this area.

Not final. Not perfect. But getting REALLY F'N GOOD!
But first a side note: A ton of work went into this @SpecterWallet release.

You'll see me continue to contribute to Specter where I can. I am full-time SeedSigner, but guess how I spend my evenings and weekends? More coding!

I have no life, y'all.

Back to @SeedSigner: As the project keeps growing we have to keep stepping up our documentation and tutorial game.

My English teacher background makes these tasks actually strangely enjoyable.

Really excited about this nice code efficiency improvement. Constantly repeating the same boilerplate code over and over again is just bad design. This cuts out a lot of it.

First cut at his sat-for-sat PSBT accounting screen!

Part of the ongoing UI experiments to figure out how to best present all the details to the user & hopefully educate them a bit along the way.

I love all the great input these tweets attract!

Milestone week: funding for full-time dev through the end of Q1 fully achieved!

Working out key UI complications and further advancing our threading model--this time to run two threads in parallel with the main process!

Making threads easier to incorporate paved the way for the first version of an intermediate loading screen to fill the momentary dead time while a complex screen loads.

And then whoa, sexy update!!!

It's hard to convey this in pics or a video, but it just makes @SeedSigner even more joyful and delightful to use!

HUGE under-the-hood progress in really picking apart PSBTs and understanding at a deeper level what we can use to our advantage--and incorporate into the UI flows and messaging.

So much of the PSBT flow is around verifying change. You HAVE to know where every sat is going, even though most people don't know about utxos or change.

I've been building in more hand-holding than not. For precious sats, I think that's the right call.

Another HUGE revelation as I dig deeper into PSBTs. In many cases we can instantly verify the change address without iterating through addr indices.

This is a massive improvement in the assurances we can provide w/no extra effort from the user.

While the funding goal for Q1 has been reached, further stretch goals will be added later. But I want to get a v0.5.0 release out before making another big push for donations.

Until then, if the spirit moves you:

btcpay.keithmukai.com

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Keith Mukai

Keith Mukai Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @KeithMukai

Feb 7
ALMOST through the hardest parts of @SeedSigner's PSBT review screens.

BIG breakthrough: realizing we can confirm change addrs much more easily than previously thought!

We can instantly provide assurances that single sig change addrs are legit. Multisig requires a 2nd step.
"35c5d905: change #0" means:

* For the seed that we selected to sign this psbt (ID'ed by its fingerprint)...
* The addr from the psbt was confirmed to match the seed's first (#0) change addr.

This is undeniably my seed's correct change addr. My change is not being stolen.
And, yes, probably the "confirmed address for seed" label could be improved. So f'n hard to convey complex concepts in limited real estate!

"confirmed change address"?

"confirmed from seed"?

"seed ownership confirmed"? (meh)

I really want the word "confirmed" in there.
Read 5 tweets
Feb 6
Experimenting with this @SeedSigner PSBT warning screen.

If your coordinator software gives you an evil PSBT that steals your change output, this would call that out.

But legit txs can obv be a full spend, too.

So too scary or confusing for noobs? Better wording ideas?
Obv a noob could misconstrue "input value" with "OMG is it stealing my WHOLE WALLET?!!"

But I think noobs are unlikely to ever construct a tx that spends exactly a whole utxo (and so wouldn't see this warning) unless they're actually sweeping their whole wallet.
The other possibility is that they're trying to sign with the wrong key.

(though me may be able to prevent this from happening, too)

Read 5 tweets
Feb 6
Learning a lot more about what info @SeedSigner can pull out of a #Bitcoin PSBT.

What if you try to sign a PSBT w/the wrong seed? How do we detect that it is the wrong seed? Should we try to stop you or are there edge cases where it's better to let you try?

Live demo thus far!
@SeedSigner IF it makes sense to still offer the "Sign PSBT" button on what looks like the wrong seed, how should that be indicated?

The added question mark isn't super helpful, but there isn't much room to work with either.
And how does the seed/PSBT check work? We check each input utxo's `bip32_derivations` list which is generated by the `embit` library.

IF we find derivations AND the fingerprint within at least one of them matches our seed, THEN we know it's a valid seed for that PSBT.
Read 4 tweets
Jan 17
Been collecting random easy-to-source metal plates to try to work out a super low budget, under-the-radar version of the awesome @SeedSigner SeedQR plates that @SeedMint21 has been testing.

My improvised versions obv won't be as nice nor as durable, though.
These credit card-sized bottle openers (wha..., why?) make the best impression of the bunch. Thicker and studier than they look. Shiny, smooth, w/nice rounded edges.

No indication of what grade of stainless steel. Assume meh.

But only $1.25 each!

amazon.com/gp/product/B08…
Also testing a new QR template using dot targets instead of the inner grid, as suggested by @SeedMint21.

I think the dot targets are a bit better; there's less visual clutter. The overall scale on these plates is pretty small, but it's all easier on my eyes than I expected.
Read 8 tweets
Jan 16
Basic demo of @SeedSigner experimental "breathing" caution box UI concept for dangerous screens.

But the real work is under-the-hood: a new reusable threading class for components with independent side loops.
Unfortunately threaded code is REALLY HARD to get right.

I did not get it right.
(it "breathes" but nothing else!)

Simple bug I'll get resolved soon or showstopper that'll make me abandon this approach? Dunno. Welcome to the fun of real-time coding!
Reason to feel optimistic: This was my first result!

After seeing this sh*tshow I deleted all my changes and gave up... but then reconsidered & tried again, yielding the "success" (such as it is) above.

With threading, it's always ddawn darkest before the dadawn arkest befdawno
Read 4 tweets
Jan 14
I can no longer recommend the hammer headers for @SeedSigner builds.

The hammering jig cracked and then I did my best to improvise around it. Everything went way downhill from there.

I'm only going to solder the gpio headers on now. ImageImageImage
Here was the beginning of the end. Cracked the thick hammer bar but was able to finish this one.

The next two (not on video) were total failures in multiple ways. The jig itself just has too much wobble in its vertical guides. And acrylic just isn't strong enough, apparently.
The ideal jig would be something like a set of female headers, but loose and deep enough to directly contact the male headers' plastic base (there's no way to avoid dirty imagery here!) so that the force lands there instead of up at the pins. Much less room for error/skew. Image
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

:(