Source reviewed
Read or asserted against the pinned released source. This does not run an importer.
Oath Wallet Compatibility Lab · 2026-11-09
How Oath reviews wallet recovery: pinned versions, public fixtures, reproducible checks and clear boundaries between source, core tests and observed behavior.
Read or asserted against the pinned released source. This does not run an importer.
Public fixtures executed in Wallet Core 4.8.4 WASM, with Oath path declarations checked separately. This does not execute the Oath app importer.
Actual released OathBitcoin Swift code executed on a Mac, using public fixtures and mocked discovery where specified. This does not launch the iPhone app.
Some cryptographic fixtures pass, but the original account policy or full restoration workflow is not established.
No compatibility result is asserted. A missing check is not a passing result.
The accepted run used macOS 27.0, Apple Swift version 6.4.2 (swiftlang-6.4.2.1.9 clang-2100.4.1.1), Node v26.5.0, Wallet Core 4.8.4 and BitcoinDevKit 3.1.1. Use a current Xcode command-line toolchain compatible with the pinned package. Different host versions should be recorded as a new run.
The runner uses only public fixtures already in the repository. Package installation may access the network. It does not launch a simulator, connect a wallet or broadcast a transaction. The funded-test environment switch is explicitly removed.
git clone https://github.com/OathWallet/oath-wallet.git oath-lab
cd oath-lab
git worktree add --detach ../oath-5.0.2 d039b009d8c81b0497f2ac7e6abebfdf54ff8612
npm ci --prefix Website/compatibility --ignore-scripts
node Website/compatibility/run.mjs ../oath-5.0.2 ../oath-lab-resultsRunner, pinned npm lockfile and reproduction notes. The runner accepts only the recorded clean source revision and refuses to overwrite an existing successful result. For an exact reproduction, use the tooling commit recorded in that folder’s history.
reference.json records the 18 reference/source checks. host-tests.log records the Swift run. results.json is written only after the expected test inventory passes, including the explicitly skipped funded test. Compare test IDs, statuses, versions and source hashes; timestamps and durations will differ.
A failing or incomplete run is not evidence of compatibility. Review the error and retain the original result. Do not change expected addresses merely to make a test pass. Results from a reference engine do not substitute for executing Oath’s importer.
The current comparison links to dated results. A newly reviewed Oath release, added account format or new installed-app test gets a new edition with its own source revision and changes. Older editions retain the versions they actually checked.
If a published statement is wrong, correct it with a dated note on that edition; do not quietly upgrade the evidence level. Source and machine-readable result changes remain reviewable in GitHub. The website build validates references and test statuses before publishing.
Open a public issue or contact Oath support with the edition, wallet/app versions, account type and the result ID. Describe the mismatch using public documentation or synthetic fixtures. Do not include a phrase, private key, passphrase, wallet file, personal address history or screenshots containing secrets.
For a vulnerability, use the security reporting guidance. This Lab is maintained by Oath; references to other wallets are for interoperability research and do not imply endorsement.