1) Why did you say "So, I believe that the Ledger SegWit wallet should be giving a "ypub"". Why couldn't this have been the zpub?
As already explained by TryNinja... YPUBs are for the "3"-type SegWit (aka P2SH-P2WPKH) addresses... whereas the ZPUBs are for the "bc1" (aka bech32) addresses... and Ledger does not generate bech32 addresses at this time.
It is because,
in this instance, the XPUB that you see is NOT actually the Master Public Key for your wallet... instead, it is the Extended Public Key for the particular account within the Ledger wallet. In other words, it is already at the "m/49'/0'/0'" derivation level... so you just need to use "m/0" to start deriving addresses from this point.
If you were to specify the "full" derivation path (ie. m/49'/0'/0'/0) with this particular XPUB, you'd actually be deriving addresses at the starting point: "m/49'/0'/0'/49'/0'/0'/0"
You can test this by experimenting with the Ian Coleman website:
- generate a random seed...
DO NOT USE YOUR ACTUAL SEED! - Click on BIP49...
- Copy the "Account Extended Public Key" and check the first address (path = m/49'/0'/0'/0/0)
- Paste the "Account Extended Public Key" into the "BIP32 Root Key" section at the top
- Click BIP141 tab
- Make sure the BIP32 derivation path = m/0 and that the Script Type is "P2WPKH nested in P2SH".
- Check the first address... (path = m/0/0)... it *SHOULD* be the same address as the one in step 3.
It works the same for legacy accounts from Ledger... (you just use BIP44 tab instead of BIP49... and BIP32 tab instead of BIP141 on the Ian Coleman website)