Trust
Audits & verification
Three external reviews, published whole, findings and all. Plus the exact commands to rebuild the app yourself and confirm nothing was added on the way to you.
01Published reviews
Reports are published unedited, including findings we disagreed with and our reasoning. Redactions are limited to infrastructure hostnames and are marked in place.
| Report | Scope | Findings | Status |
|---|---|---|---|
| Halo Audit 2026-Q2 | Signing paths, enclave bridge, Shamir sharding | 0 critical, 0 high, 2 low | Both closed in 4.7.0 |
| Kestrel 2025-Q4 | Extension, dapp connector, permission model | 0 critical, 1 high, 4 medium | All closed in 4.4.1 |
| Northwind 2025-Q1 | Derivation, BIP-39 handling, backup flows | 0 critical, 3 medium | All closed in 3.9.0 |
| Fathom cryptography note | Ed25519 and Move payload decoding | 1 informational | Open, tracked as CP-1188 |
The one open item is a documentation gap: our Move decoder is more conservative than the specification requires, so some safe payloads are shown as unknown. We prefer that failure direction and will close the item by documenting it rather than loosening the decoder.
02What the high finding was
Kestrel found that the extension's connector could be persuaded, by a page that opened and closed a popup rapidly, to attribute a signing request to the wrong origin. No funds were affected and the bug required user interaction on a malicious page, but the failure mode was severe enough to rate high.
We fixed it by binding every request to a nonce created at popup open and refusing any request whose origin changes after creation. The fix shipped 19 days after the report, and the regression test is in the public test suite as connector_origin_pinning.
03Rebuild it yourself
Builds are deterministic. Two people building the same tag on different machines get byte-identical artefacts, so a binary that differs from the published hash was altered by someone.
# 1. get the exact source for the release you installed
git clone https://github.com/xendra/wallet.git && cd wallet
git checkout v4.8.2
git verify-tag v4.8.2
# 2. build in the pinned container
docker run --rm -v "$PWD":/src xendra/build:4.8.2 make release
# 3. compare against what you installed
shasum -a 256 out/Xendra-4.8.2.apk
curl -s https://xendra.xyz/releases/4.8.2/SHA256SUMS | grep apk
The hashes must match exactly. They are also mirrored by two independent rebuilders whose results are linked from each release note in the changelog.
04What is in scope for review
- Key generation, derivation and sealing on all three platforms.
- The enclave bridge and every path that touches an unsealed seed.
- Transaction construction, decoding and simulation for all seven networks.
- Shamir sharding, shard export and reconstruction.
- The extension connector and its permission model.
- The release pipeline itself, including signing and the update channel.
Out of scope: third-party contracts, aggregators and bridges we merely quote. We publish the addresses we route to so you can review them independently.
05Cadence and commitments
We commission a full external review at least twice a year and after any change to the signing path. We publish every report within 30 days of receiving the final version, whatever it says.
Standing commitment
If an audit ever finds a critical issue, we will publish it, ship a fix and write a post-mortem, in that order, and we will not wait for the fix to disclose that a critical issue exists.
Start holding your own keys.
iOS, Android, desktop and a browser extension — the same vault on all of them. Free, and it stays free.