A few notes about Core App Extension

Avalanche Wallet, which AVXTO Wallet later forked, was originally designed by Ava Labs to be used with mnemonic, ledger, xpub and private key wallets.

We extended it to use Core App Extension, which is currently the official Avalanche wallet solution.

But, as you may expect, there are a few differences between the two, mainly regarding HD wallets. Here’s what you should know.

HD Wallets

HD wallets are able to derive new addresses from your master key. These wallets are privacy oriented and may even protect you from quantum cryptanalysis in the future!

You can find a complete intro to HD wallets on the WWW or from your favorite AI chat, but here’s a few tidbits you should know about AVXTO Wallet and HD wallets.

tl;dr; Core App extension isn’t really designed to use HD wallets with derived addresses.

Now for the longer version...

Balances

Core App Extension checks balances up to a certain number of derived addresses, then it stops. It was originally designed to use a single address, but then older wallets from the original Avalanche Wallet era would display and incorrect balance. Thus, they made it so Core can read a few derived addresses, but not an infinite number like AVXTO Wallet can.

This means your balance from, say, address index 211 in AVXTO Wallet, may not actually show up on Core App! This is usually OK if you still have your mnemonic key, since mnemonic wallets in AVXTO Wallet are able to scan down to infinite keys (though that’d make it really really slow and you’d be hammering the API endpoints with tons of requests).

Therefore if you use HD wallets extensively in AVXTO Wallet, your mnemonic wallet and Core App balance may not match exactly. This doesn’t mean your funds are lost. Just means Core Extension can’t reach that address index.

Cross Chain TXs

Here’s where we found most problems during development and testing.

When you perform a cross-chain transfer, AVXTO Wallet used to be designed to use as far as possible an address for the destination funds. This broke down on our 3rd or 4th test, because AVXTO Wallet jumped to an index Core App could no longer reach.

The Core Extension on the sidebar would show one balance and AVXTO Wallet would show another.

We made a tough decision here. (We had to.)

Cross chain transfers will always send funds to the very first address in your wallet. The one Core App shows you by default. We had to do it to maintain compatibility. But this doesn’t have to compromise your privacy or security.

After the crosschain TX is done, there’s nothing stopping you from moving it to a new X chain address from your address list! As long as you’re using a mnemonic wallet, you’ll be able to reach any address index you want.

Core App, on the other hand, will restrict you to a certain amount of initial addresses. At the time of this writing it was approximately 50 or something like that. Don’t count on this number at all. They may restrict it to 1 address if they want to.

So, if you want Core App compatibility, always use the very first address. The one Core App shows you.

Conclusion

A mnemonic AVXTO Wallet can reach any address Core App shows you, but Core App cannot reach every AVXTO Wallet address. We had to make some compromises here to maintain compatibility with Core Extension and Core App.

If your funds aren’t showing up identically on Core and AVXTO Wallet, it probably means you used a far away, high index HD wallet derived address.

To derive an address, AVXTO Wallet had to have your master private or xpub key available. So, if you didn’t mess your keys up, your funds should be safe, as long as you can reach its private key to sign TXs with.

HD wallets can derive almost an infinite number of keys, so you should be able to reach your funds no matter where you placed them down the HD hierarchy. Just keep in mind that Core App won’t always show all your address balances and most importantly, it won’t be able to sign any index, it’s designed to use the very first derived key only. It searches a bit forward for convenience and for compatibility with older wallets, but they may get rid of HD entirely at any time.

When using Core App with AVXTO Wallet you’re probably better off just using the default address shown on Core App. It’s the 0 (zero) index HD wallet address on AVXTO Wallet. For more adventurous transactions, use the mnemonic wallet type.

You can always view your derived HD addresses on AVXTO Wallet’s “Addresses” page via the sidebar menu or using the AVXTO Wallet derivation tool.