Conferences are coming up end of May, and it’s time to get Arké in shape for demos and testing. I do think it’s feature-complete for the time being and now it will just need more testing and hardening. Here are some recent changes (not all are on TestFlight yet):
Made the first mainnet transaction, and it worked great. A bit anxiety-inducing to have the app handle real bitcoin. As a builder, you’re just so aware of all the underlying mechanics.
I implemented in-person sharing. It’s purely gesture-based. You tilt our phone towards another person and they do the same. The phones find each other and exchange payment info. You can pay them or add them to your contacts. Here’s a demo.
I like how simple this turned out. It’s basically just a simple gesture.
A bit more under-the-hood was this update to data backup and multi-device handling. I migrated my own phone recently and used that opportunity to see how other wallets handle the process. Wallet data was already synced via iCloud, but I also changed it so the recovery phrase is synced (via Keychain). So you can run the app on multiple devices. The first one will be the full wallet. Other ones will automatically be in read-only mode. Some options like sending are not accessible, but your balance, transactions, tags, contacts, etc all show up and sync smoothly. You can see primary and secondary device UI below.
If you lose your primary device, you can just tell the app on your second (or new) device to take the primary role and it will just become a full wallet. In the future, there might be a desktop app and options to initiate transactions on secondary device, where you have to approve on the primary one. I am much happier with this new architecture.
Let’s chat about unilateral exits for a moment. I have spent a lot of time on this feature, because it is your security hatch that lets you claim your bitcoin if the Ark server goes away. This applies to both Ark implementations and Spark as well. It really is not negotiable for me that this needs to exist and be accessible. I had mostly worked on this by myself and now wanted to see how others implement it.
Turns out no one implements it, the feature does not exist in any app. And the Spark functionality isn’t even very good. And Breez SDK doesn’t expose it at all. So Wallet of Satoshi, Tether, Primal, Blitz, Cake, and others all trust the Spark servers to stick around. And there are three server operators currently, two of them being related. I am a bit shocked at how shabby and shaky this is. Maybe slow down with those stablecoins for a moment and get the basics right.
Both Ark implementations are super new, the one I work with is not even publicly on mainnet yet. But I don’t think it’s excusable for Spark. And I don’t know what the wallet devs are thinking.
I think it’s lame, but it’s of course their decision (and they can think my decisions are lame, that’s also OK). I’ll focus on making exits a first-class feature in Arké. And I am very happy that I decided to work with the Ark implementation by Second, who also very much care about doing this right.
End of rant.
Anyhow, time to get this thing in shape the next two weeks and then show it to people and hear what they think. If you’d like to help test, join the TestFlight on the website. I appreciate all the input I can get.
✌️

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.