Skip to main content

How to get the xpub from different wallets (BRD, Ledger, Jaxx, etc.)

Written by Robin Singh

Exporting the extended public key (xpub, ypub, zpub) from Ledger, Trezor, Blockchain.com, Enjin, Trust, Jaxx, and other wallets.

When importing your wallet to Koinly you may notice that only some transactions are imported (or none at all) - this is common for wallets like BTC, LTC, etc., since they use multiple public keys for the same account.

Which integrations require an xpub?

Any blockchain that generates a new address every time you want to receive a transaction using the UTXO protocol and you will need to find the xpub key for it in order to import all transactions automatically.

Examples of blockchains using the UTXO model:

  • Bitcoin, Bitcoin Cash

  • Litecoin

  • Dogecoin

  • Dash

  • DigiByte

  • Cardano

Note that your xpub key is different for every single blockchain so you will need to export it separately for all coins that you are transacting with.

Some wallets will show you your xpub easily while others don't show it at all. You can always use your recovery phrase to figure out the xpub key for any wallet. More on this at the end of this tutorial.

ℹ️ Your wallet may call the extended public key somewhat differently. For different Bitcoin derivation paths, it can be a ypub or a zpub. Cardano wallets rarely call them "xpubs" - usually it's just listed as "public key".

Which integrations don't require an xpub?

  • Ethereum (ETH)

  • All other EVM-based chains
    Polygon, Binance Smart Chain, Avalanche C-Chain, Fantom, Cronos, Arbitrum, Optimism, Ethereum Classic, etc.

  • Other chains include:
    Solana, Cosmos-SDK chains (Cosmos, Osmosis, Stargaze, Juno), XRP, Algorand, BNB Chain, Icon (ICX), Lisk, Nano, NEM, NEO, Ontology, Tezos, Tron, VeChain, Waves, and more

For these blockchains find your public address (your "receive crypto" address) from any of your transactions and use it to sync the wallet with Koinly.

Wallet-specific instructions

Here are some examples of how you can find your xpub key depending on the wallet you're using

Trezor

Expand to see how to get the xpub for Trezor wallets

Your xpub/zpub is easily accessible via the Trezor Suite

image.png

Ledger

Expand to see how to get the xpub for Ledger wallets

Ledger Live displays your "generic xpub" only, no matter if you used Legacy, Segwit, or Native Segwit addresses (starting with 1***, 3*** and bc1q***, respectively).

You can access your xpub by selecting the "Edit" icon, and then "Advanced Logs":

image.png

ℹ️ There's no xpub available for taproot

It's not currently possible to generate an xpub for Taproot addresses right now (bc1p***). If you are using Bitcoin with the newest upgrade, you need to use the CSV export or input all the single-use addresses to Koinly (you can add them all to the same wallet in Koinly).

Blockchain.com

Expand to see how to get the xpub for Blockchain.com

  1. Go to "Wallets and Addresses"

  2. Clicking "Manage" next to the wallet you need

  3. Choose Segwit/Legacy

  4. Click "Manage"

  5. Click "Show xPub"

blockchain_com-xpub.gif

Reference:

Enjin

Expand to see how to get the xpub for Enjin

  1. Tap on the BTC on the main screen to see your BTC XPUB/YPUB/ZPUB

    image.png

Reference:

KeepKey

  1. Connect your KeepKey with the Electrum wallet.

  2. From the top menu choose Wallet > Information.

Coinomi

Expand to see how to get the xpub for Coinomi

  1. Click Settings → Export keys

    image.png
  2. If this option is missing, try "Account details" instead

Trust Wallet

Trust wallet no longer exports xpubs, unfortunately.

No xpub available

If the wallet you use does not expose the xpub at all, you have two options:

  1. Sync the wallet using all single-use addresses instead

  2. Generate the xpub from the seed phrase

Use single-use keys

You can still sync your wallet with Koinly by providing all single-use keys your wallet generated, separating them with a comma, like this:

bc1q***1,bc1q***2,bc1q***3,bc1q***4,bc1q***5

If you use this method, always update the API settings (add newly used public keys) before clicking "Sync now". Or delete the wallet and add it again with an up-to-date list of addresses.

Generate the xpub from the seed phrase

🚨 This workaround may expose your seed phrase

This method involves using your recovery phrase and should be avoided. If you need to generate your xpub using this method, consider the following precautions:

  1. Download the website and open it locally (right-click and "Save as")

  2. Save it on a USB stick

  3. Run the website from a machine without internet connection
    (e.g. use a Linux Live USB like TailsOS)

  1. Have your seed phrase ready
    This is usually the 12-word password you received when setting up your wallet.

  2. Visit the Mnemonic Code Converter
    https://iancoleman.io/bip39/

  3. Enter your seed phrase in the BIP39 Mnemonic field

  4. Select the Coin that you want to generate the xpub for
    Eg. Bitcoin, Bitcoin Cash, etc.

  5. Select the Derivation path
    Most wallets use BIP 44 standard, though your wallet may also be using BIP32 or BIP84. Check which detivation path your wallet is using on walletsrecovery.org

    • BRD wallet: Enter m/0' in the BIP32 Derivation Path field

  6. Copy the Account Extended Public Key

    • If you chose BIP32, copy BIP32 Extended Public Key instead

  7. Repeat the process for all other coins

    • You need to change the Coin and possibly Derivation Path

Common questions and issues

No transactions when syncing with xpub

If you synced your wallet using an xpub but Koinly still shows no transactions:

  • Create a new wallet using the xpub.
    If you updated an existing wallet and changed the public key, it will not sync all historical transactions

  • Try a zpub or ypub instead
    Your wallet may have provided multiple xpubs (Exodus provides three) - try each of them. One will contain your transactions

  • Custom derivation path
    Your wallet may be using a custom derivation path the Mnemonic converter doesn't support, or may not follow the wallet standards (e.g. has excessive gaps between used addresses). If that's the case, you will need to import your data using CSV files instead.

Did this answer your question?