How it's built
Decisions we can show you.
Most of what makes a wallet trustworthy is invisible. Here are six choices from the last six months, each with the reason it was made and the measurement that settled it.
The QR that looked right and decoded on nothing
We rounded the finder frame of the receive QR by a quarter of a module — a change you cannot see without a loupe. It looked cleaner in every mockup, and it took one of our reference decoders from reading the code 10 times out of 10 to 4 out of 10.
The measurement settled the argument: the radius went back. Now two independent decoders have to read every rendered QR back before a build ships, so a code that merely looks right never reaches your screen.
Two text colours that failed and were replaced
Two greys in the app measured 2.81:1 and 2.02:1 against their backgrounds — well under the 4.5:1 line. Neither was decoration: one of them carried the coin amount printed under every balance, which is the number people actually read.
Both colours were replaced, and the check was moved into the build. Every text colour in the app now measures at least 4.5:1, and a new one that doesn't fails the pipeline.
Why no button is highlighted
Four filled tiles on a screen say nothing — everything shouts, so nothing does. But one filled tile is a recommendation, and we decided the app has no business recommending the action it earns on.
So buy, sell, swap, and send are styled the same. The app presents the actions; the decision, and the timing, stay with you.
Why partners are named only sometimes
The rule is disclosure sized to risk: custody either changes hands or it does not. When you buy with a card, a partner — MoonPay or Coinbase — takes your money and delivers the coin, so the partner is named on the screen, with their fee, before you confirm.
When you swap, the transaction is quoted and settled on-chain and no custodian ever holds your funds, so there is no custody to disclose. Naming everyone all the time would be noise; naming no one would be hiding. The line is drawn where your money changes hands.

One row per asset
The asset list used to be a list of deployments: the same token, once per chain, as many rows as networks. It stopped being that the day it could not answer the simplest question a holder asks — how much ether do I have.
Now each asset is one row, one total, with the chains it lives on folded underneath. The list answers the question first and explains the plumbing second.
3,541 tests, and what a rule without one is
Every rule in this app — the warnings, the approval sizing, the checksums, the contrast floor — exists because a test holds it in place. 3,541 of them run on every build, covering key derivation, transaction building, and the warning systems.
There is no independent security audit yet, and a test suite is not a substitute for one. The working principle, printed on the wall, is shorter than the suite.
“A rule without a test is decoration.”
Signed
Bridge UX Lab
The partners, fees, and the state of the audit are written down on the disclosures page.