Recently a friend of mine asked my opinion on Muun, an open source Bitcoin and Lighting client.
I’m not particularly involved with cryptocurrencies due to their environmental impact but I think the technology and the evolution around its space are interesting to study. The idea of distributed consensus may not yet have a worldwide practical application but is nevertheless an interesting achievement.
What made it interesting is the self-custodial aspect. I got interested when I read about the Emergency Kit, which is probably still a burden for most users but it’s a great step forward in usability.
While looking at the Muun source code I discovered they have a Go tool called recovery
(that allows to transfer funds out of your account without independently of the platform itself).
I started reading the code after looking at the initial GIF displaying the tool loading the Emergency Kit data from PDF 🧐
In the code I found an interesting function that extracts a JSON file from the PDF attachments and uses it to load emergency kit data.
// ReadMetadata returns the deserialized metadata file embedded in the SrcFile PDF.
func (mr *MetadataReader) ReadMetadata() (*Metadata, error) {
That’s a really cool idea to provide a great human + machine experience for a sensitive operation like account recovery.