Download
Download the styled (but slightly more unstable) v0.02 here.
Pre-styling (but more stable) technical demo can be found here (& shoutout @Cam for making it beautiful, functional, and useable - see his writeup here).
Dub v0.02
Changes
Dub v0.02 builds on the browser functionality of v0.01 to improve browser reliability & add personal signing (like when OpenSea asks you to sign terms of service with your wallet). v0.02 creates/stores a fresh wallet on startup - stored on device - that lets you sign personal transactions (on-chain signing coming soon). It also enables chain-switching (both from within dApps and at a browser level).
v0.02 also gives Dub a facelift, implementing the first in our series of radical UI experimentation (see a new UI in Dub next week!)
Lots of bugs and refactoring needed but an exciting technical proof of concept for us!
Reflections
This was a SPRINT to complete - personal sign in particular gave me a few days of solid grind. In between those moments, chain switching, connect wallet, auto new tab creation when using cmd click to open a link, and much more provided some refuge in letting me actually accomplish something while stuck on what seemed like an insurmountable problem. All in all, learned a lot about JavaScript, Swift, Swift UI, low-level debugging of bytes, and much more.
Much of the work also reaffirmed our belief that the browser IS an if not the answer to the state of security and usability in web3. The existence of sketchy intermediary objects, several undocumented and convention-based “APIs”, and a requirement to trust dApps + chrome / safari extension wallets to properly listen for disconnected messages and properly implement their requirements is a massive signal that the browsers of today weren’t built for web3. We’re excited to keep thinking about how we might better enable web3 <-> wallet connections, development, and access.