Skip to content

Conversation

@Overtorment
Copy link
Member

@Overtorment Overtorment commented Oct 28, 2025

Note

Introduce HD Taproot (BIP86) wallet with p2tr derivation, PSBT/taproot signing, watch‑only/descriptors, import/export, and UI creation flow.

  • Wallets/Core:
    • Add HDTaprootWallet (BIP86 m/86'/0'/0', p2tr) with taproot address derivation, PSBT inputs, taproot signing, and Silent Payments p2tr support.
    • Extend abstractions for p2tr (segwitType), cache master fingerprint, and p2tr coinselect weight.
    • Include HDTaprootWallet in serialization/deserialization and exported types.
  • Import/Discovery:
    • Merge Electrum formats with BlueWallet formats adding p2tr; map p2tr to HDTaprootWallet during BIP39 scanning.
    • Support output descriptors parsing (tr(...)) and add WalletDescriptor helper; generate descriptors for taproot watch‑only exports.
  • Watch‑only:
    • Initialize HD watch‑only as Taproot when xpub + BIP86 path; support descriptor imports; expose p2tr PSBT fields.
  • UI:
    • Add Taproot option to Add Wallet screen; update custom derivation import to include HDTaprootWallet.
    • Show/export taproot watch‑only as descriptor in Wallet Export and XPUB screens.
  • Transactions/PSBT:
    • Add taproot derivations to PSBT outputs/inputs (tapBip32Derivation, tapInternalKey) and sign via signTaprootInput.
    • Message signing options clarified to exclude p2tr.
  • Tests:
    • New unit/integration tests for HD Taproot, descriptor handling, and import flow; adjust counts for offline import.
  • Misc:
    • Add android:restart npm script; bump iOS pods (lottie-react-native, RNLocalize).

Written by Cursor Bugbot for commit 20f9896. This will update automatically on new commits. Configure here.

cursor[bot]

This comment was marked as outdated.

@Overtorment Overtorment linked an issue Oct 28, 2025 that may be closed by this pull request
cursor[bot]

This comment was marked as outdated.

@Overtorment Overtorment requested a review from marcosrdz November 6, 2025 14:14
@Overtorment
Copy link
Member Author

summon @junderw @ojokne @limpbrains @marcosrdz

Copy link
Collaborator

@junderw junderw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other than the script length, all the other stuff seems optional.

@Overtorment Overtorment added the testflight Upload iOS and macOS builds to Testflight. label Nov 7, 2025
@github-actions
Copy link

github-actions bot commented Nov 7, 2025

✅ Build 7.2.1 (1762513773) has been uploaded to TestFlight and will be available for testing soon.

Copy link
Collaborator

@junderw junderw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

✅ Build 7.2.1 (1762545792) has been uploaded to TestFlight and will be available for testing soon.

@Overtorment Overtorment requested a review from ojokne November 7, 2025 21:19
@github-actions
Copy link

github-actions bot commented Nov 7, 2025

✅ Build 7.2.1 (1762553991) has been uploaded to TestFlight and will be available for testing soon.

Copy link
Member

@ojokne ojokne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its not possible to import a Taproot wallet using seed words,

by default it imports HD SegWit (BIP84 Bech32 Native)

Steps to reproduce

  • Create a new Taproot wallet and record the seed words
  • Try to import the wallet and enter the same seed phrase
  • Tap Use custom derivation path

The Taproot derivation path (m/86'/0'/0') isn’t available among the options.

You can check screens/wallets/ImportCustomDerivationPath.tsx, lines 101–108, where the available wallet types are defined

const items: TItem[] = useMemo(() => {
    if (wallets[path] === WRONG_PATH) return [];
    return [
      [HDLegacyP2PKHWallet.type, HDLegacyP2PKHWallet.typeReadable, used[path]?.[HDLegacyP2PKHWallet.type]],
      [HDSegwitP2SHWallet.type, HDSegwitP2SHWallet.typeReadable, used[path]?.[HDSegwitP2SHWallet.type]],
      [HDSegwitBech32Wallet.type, HDSegwitBech32Wallet.typeReadable, used[path]?.[HDSegwitBech32Wallet.type]],
    ];
  }, [path, used, wallets]);

@GladosBlueWallet
Copy link
Collaborator

@GladosBlueWallet
Copy link
Collaborator

@github-actions
Copy link

✅ Build 7.2.1 (1762773534) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762777227) has been uploaded to TestFlight and will be available for testing soon.

@Overtorment
Copy link
Member Author

@limpbrains now tests/integration/import.test.t fails

@github-actions
Copy link

✅ Build 7.2.1 (1762798554) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762798640) has been uploaded to TestFlight and will be available for testing soon.

@limpbrains limpbrains force-pushed the add-taproot-wallet-bip86 branch from 8da013f to e11a785 Compare November 10, 2025 19:13
@limpbrains
Copy link
Collaborator

@Overtorment Sorry, everything should be alright now. God bless the tests

@github-actions
Copy link

✅ Build 7.2.1 (1762802661) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762802281) has been uploaded to TestFlight and will be available for testing soon.

@Overtorment Overtorment merged commit ed8a928 into master Nov 10, 2025
11 checks passed
@Overtorment Overtorment deleted the add-taproot-wallet-bip86 branch November 10, 2025 20:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testflight Upload iOS and macOS builds to Testflight.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for BIP86 (taproot HD wallets)

7 participants