On the cardano developers site, the example they have on accepting payments using cardano-wallet its stated to retrieve an unused address from the wallet and have clients send to that address.

However, if I can only create "20" addresses (from the recommended address_pool_gap option), what happens when I have more than 20 transactions?

Would I need to send balance to a "main" wallet address and re-use the previous used addresses? or I am missing something else?


2 Answers 2


It depends what you are trying to build. If you are building something with cardano-wallet it is safe to increase that default gap if you don’t want to use this wallet across other clients. (other clients will stop at 20 which will result in no longer display the balances of the other addresses)

Setting it to 1k, 10k, or even 50k is not a problem but the performance will decrease the higher you set this value.

Fun fact: in 2019 a Ransom attack appeared which exploited this mechanism: https://blog.sia.tech/a-ransom-attack-on-hardware-wallets-534c075b3a92 (it generated a receiving address which belongs to your private key, but based on a very high random index)


I want to complement @adatainment's answer. You can potentially create even 100 million addresses, but there is one very important nuance regarding the --address-pool-gap flag.

Nothing prevents you from creating an address straight to some crazy index such as 1 million, e.g. cardano-address key child 0/1000000, but if you send funds to a payment address generated from that key, it won't show up in your wallet as by default it expects one transaction every 20 addresses in sequence.

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.