Lockdown Mode

The first pledge for this fundraising round came with a specific request:

"Make sure [Opal Wallet] works in Lockdown Mode! Upgrade now to 1-minute blocks: gitlab.com/0353F40E/fablous"

- 1-Minute Blocks
FundMe.cash pledge note asking Opal Wallet to work in Lockdown Mode.

Since Apple introduced Lockdown Mode, I have thought it could be interesting for Bitcoin Cash wallets. Even though it does not turn an iPhone into a true cold wallet, it can make an old spare iPhone much more useful as a hardened savings device.

So I started looking at Opal Base, the backbone of Opal Wallet, and Opal Crypto, the signing and cryptography layer below it.

Diagram showing Opal Wallet built on Opal Base and Opal Crypto.

The current architecture already has good pieces for this: Secure Enclave-backed storage, stricter persistence policy, read-only wallet lanes, and separate transaction authoring and broadcast paths.

The gaps are mostly about making the safer path explicit.

Opal Base should have a first-class savings or offline-signer profile. That profile should make it natural for the wallet layer to keep signing authority separate from network activity. It should also avoid weak storage fallbacks in this path.

The transaction flow needs work too. Opal Wallet should be able to prepare an unsigned spend, move it to the signer, sign there, and move the signed result back for broadcast. That means a public unsigned-spend envelope and a signing path that keeps private key material short-lived.

Opal Crypto has its own follow-up work. The lower-level signing APIs should make it harder to pass raw private key data around longer than needed.

Lockdown Mode belongs to iOS, and the wallet app still has to guide the user through device setup, offline signing, and QR handoff.

Even though the device posture lives at the app and iOS layer, Opal Base and Opal Crypto can make the wallet architecture ready for it.

This is achievable in the six-month funded phase. I will work on it.

Wallet at the Center

Opal Wallet segmented control with Wallet selected between Send and Receive.

Opal Wallet's main tab layout starts from one rule: Wallet is home.

That is why the tab bar is arranged as Send, Wallet, Receive. The center tab is the default view, with Send and Receive placed on either side as actions around the wallet.

The account row gestures follow the same map. Swipe toward Send or Receive, and Opal Wallet carries the wallet context into that action.

The Receive path is a small example: start from Wallet, swipe the account row toward Receive, and Opal Wallet opens the Receive flow for the same wallet.

Opal Wallet wallet list on iPhone Opal Wallet account row swiped toward Receive on iPhone Opal Wallet receive screen on iPhone
WalletStart from the account row. Swipe to ReceiveThe gesture moves toward the Receive side. ReceiveThe Receive flow opens with the same wallet context.

This is also where Liquid Glass matters. It helps the interface stay light and layered while keeping the workflow visible: wallet first, then action.

In a market full of wallet dashboards, this is one of Opal Wallet's product advantages. Everyday BCH actions stay connected to the wallet they come from.

More soon.