3

We noticed this situation with sending ADA to a wallet using addresses generated from cardano-address (according to the specifications on https://github.com/input-output-hk/cardano-addresses) which are separated by more than several hundred.

Situation

When we send a payment (from Nami or CCVault or wallet-server for example) to an address that is generated by the 2000th key (for example, it just needs to be something more than a few hundred above 0), we see that the transaction posts to the blockchain but is not recognized by any wallet (Nami or CCVault).

However, when you send payment to an that is recognized (something within about 200 addresses from 0th address or 200 addresses from the previously wallet-recognized transaction), you can sequentially increase the addresses by about 200 until you reach within 200 of the initial high-numbered address and then the transaction to the high-numbered address will suddenly appear (even if it is days later).

Question

Can we be certain that the high-n incremented addresses will post to a wallet for verification?

Here is an example of two days worth of transactions.

Day 1 Jan 16

2000th addr tx 2000th address /0/2000 DATUM MSG 2000 - JAN 16, 18:16 PST

200th addr tx 200th address /0/200 DATUM MSG 200 - JAN 16, 18:21 PST

  • 200 SHOWN IN WALLET 18:22 PST
  • 2000 NOT SHOWN IN WALLET 18:22 PST

400th addr tx 400th addr /0/400 DATUM MSG 400th - JAN 16, 18:32 PST

  • 400 SHOWN IN WALLET 18:32 PST
  • 2000 NOT SHOWN IN WALLET 18:32 PST

600th addr tx 600th addr /0/600 DATUM MSG 600th - JAN 16, 18:33 PST

  • 600 SHOWN IN WALLET 18:33 PST
  • 2000 NOT SHOWN IN WALLET 18:33 PST

800th addr tx 800th addr /0/800 DATUM MSG 800th - JAN 16, 19:20 PST

  • 800 SHOWN IN WALLET 19:20 PST
  • 2000 NOT SHOWN IN WALLET 19:20 PST

Day 2 Jan 17

1000th addr tx 1000th addr /0/1000 DATUM MSG 1000th - JAN 17, 09:49 PST

  • 1000 SHOWN IN WALLET 09:49 PST
  • 2000 NOT SHOWN IN WALLET 09:49 PST

1200th addr tx 1200th addr /0/1200 DATUM MSG 1200th - JAN 17, 09:53 PST

  • 1200 SHOWN IN WALLET 09:53 PST
  • 2000 NOT SHOWN IN WALLET 09:53 PST

1400th addr tx 1400th addr /0/1400 DATUM MSG 1400th - JAN 17, 09:57 PST

  • 1400 SHOWN IN WALLET 09:57 PST
  • 2000 NOT SHOWN IN WALLET 09:57 PST

1600th addr tx 1600th addr /0/1600 DATUM MSG 1600th - JAN 17, 09:59 PST

  • 1600 SHOWN IN WALLET 09:59 PST
  • 2000 NOT SHOWN IN WALLET 09:59 PST

1800th addr tx 1800th addr /0/1800 DATUM MSG 1800th - JAN 17, 10:02 PST

  • 1800 SHOWN IN WALLET 10:02 PST
  • 2000 NOT SHOWN IN WALLET 10:02 PST

2000 SHOWN IN WALLET JAN 17, 10:17 PST

1 Answer 1

3

Cardano addresses use the BIP-32 standard for key derivation. This allows a very large (2^31-1) number of addresses to be created per account index, per master seed.

Being that most computers running wallet software do not have enterprise level specs, it is not feasible (nor necessary) for them to query the chain for such a large number of addresses. For this reason, wallet software(s)' "address discovery" is throttled by an address-gap parameter that limits how many address indexes are derived and queried, as described in BIP-44. In short,

  • If N is the gap-parameter

  • And X is the highest index with UTXO's currently recognized by the wallet

  • Then the wallet software will check all indexes from 0 to X+N

Most wallet software has this limit set to 20 by default, but my guess is yours was set to 200, since your examples are all separated by 200 indexes. In case funds live at a very high index number that you don't want to query all the way up to, you can always manually derive the spending key for that single address using cardano-addresses.

1
  • 1
    20 as the gap is probably configurable. We see in both Nami wallet and CCVault wallet that they will pick up even with a gap of 200.
    – Eli Selkin
    Commented Jan 17, 2022 at 22:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.