New Xendra Keys — shard your phrase, recover with any two. Read the note →

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.

Latest 2026-Q2, HaloCritical 0High 0Open findings 1 informational

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.

ReportScopeFindingsStatus
Halo Audit 2026-Q2Signing paths, enclave bridge, Shamir sharding0 critical, 0 high, 2 lowBoth closed in 4.7.0
Kestrel 2025-Q4Extension, dapp connector, permission model0 critical, 1 high, 4 mediumAll closed in 4.4.1
Northwind 2025-Q1Derivation, BIP-39 handling, backup flows0 critical, 3 mediumAll closed in 3.9.0
Fathom cryptography noteEd25519 and Move payload decoding1 informationalOpen, 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.