Problem changing node IP addresses with cntools

I moved my pool (bp and relays) to different larger servers. Now I’m attempting to change the IP address of my block producer and relay nodes. I have copied the necessary files to the new block producer and I’m attempting to re-register the pool (hybrid modify) with cntools. The problem is that when I attempt to complete the registration it tells me that there are no funds in the wallet. However, there are funds in the wallet, enough to cover this single modification.

Anyone know why cntools would say there are no funds in the wallet for the pool modification but I can view the registered wallet in cntools and it shows the funds? If it makes any difference, the wallet I’m attempting to use is also the reward wallet.

EDIT: I don’t know if I was clear but I’m running cntools on the new block producer node not the old one. Can the pool re-registration/modification be done on the old block producer? Does it matter?

I believe u imported the wallet right? Usually cntools is importing the first/oldest address from the wallet.
check if the cntools wallet address has the balance > 0 ( if not send 2-3 ADA to that address (internal wallet transaction) then repeat the steps


1 Like

I’m not sure what you mean by imported in this context. The original pool had two registered wallets:

  1. A wallet local to the pool (CLI) created with cntools and used for the registration fee. This wallet is also the reward wallet. Call it W1.
  2. An imported hardware wallet containing the pool pledge. Call it W2.

When I created the new pool, I built it from scratch and copied over the keys and wallets from the original pool. Now when I attempt to modify the new pool using cntools it asks if I want to use the existing wallets. I answer “yes” and cntools picks W1 (the reward wallet) just as you described but then errors saying the wallet doesn’t contain funds. However, it does contain a little over 12 ADA. I can see the funds in the wallet using cntools and I can also see that it has the funds using (btw thanks for that tip!) Not that it should matter but the pledge hardware wallet also contains enough buffer ADA to pay the transaction fee.

Note that there are two other wallets I created with cntools while attempting to get the hardware wallet to work back when I initially created the pool. Those two wallets have never been used and don’t contain any funds. They were never registered on the blockchain.

1 Like

U mean this error?

That’s not the behavior I see using cntools. I don’t get asked for a specific wallet but rather to reuse the existing reward wallet. For example,

# Pool Relay Registration

Previous relay configuration:

IPv4  6000

Reuse previous relay configuration?
Selected value: [n] No
Selected value: [i] IPv4/v6 address
Enter relays’s IPv4/v6 address:
Enter relays’s port: 6000
Add more relay entries?
Selected value: [n] No

# Previous Owner(s)/Reward wallets

Owner wallet #1 : W1
Owner wallet #2 : W2
Reward wallet : W1

Reuse previous Owner(s)/Reward wallets?
Selected value: [y] Yes

ERROR: no funds available in owner wallet W1

Just to test, I created another local wallet using cntools. However, cntools doesn’t give me the option to select it during the update process.

Here is a screenshot:

Screenshot 2022-03-28 032413

Ok? But can u choose N and enter again the wallets?

Or if u go to cntools-> wallet → show/list … do u see any balance for _Registration wallet?

is wired… :thinking: also can u test it on normal mode? I mean not hybrid

1 Like

Thanks Alex. I can only use hybrid mode because the necessary keys are on an air-gapped node. Regardless, I tried your suggestion and the result is below. It appears to have been successful although I haven’t actually signed it on my offline node and submitted the transaction yet. I need to be certain that the modification does not change my pledge and reward wallets at all. Using a hardware wallet for the pledge and a CLI for the reward wasn’t as straightforward as just using a single CLI wallet. I still don’t understand why cntools shows 0 Ada in the pledge wallet. Perhaps it is because I do not have the hardware wallet physically connected to the machine? Regardless, I confirmed that the hardware wallet has the correct pledge amount.

Seems like an issue that cntools reports that my registration wallet is empty if I choose “yes” to use the existing wallets but reports the correct amount if say “no” and manually select them. Perhaps that is a feature request. It’s just confusing because I really don’t want to change those wallets right now.

1 Like

looks ok. Pool wallet + rewards = registration wallet and pledge wallet = pledge (hw wallet)

Can u share the pool wallet address here?

BTW… is this ur address?

asking because it’s not delegated to ur pool, perhaps u will need to delegate first?

1 Like

That is the wallet used to for the initial pool registration fee and it is also the pool reward wallet. It is not delegated to the pool. Generally there will be only minimal funds, if any, in the wallet. Is there a technical reason that the reward wallet should be delegated to the pool?

Still thinking how u will receive the rewards if the address is not delegated… :thinking: the wallet is registered, it has a stake address but…

Thanks Alex. Seems counterintuitive that a reward wallet is required to be delegated. Is this documented anywhere?

FYI, a user named frank11 just messaged me with links to a site called that has an invalid cert. Beware. I flagged the message for review by the moderators.

1 Like

Thanks for let us know, I deleted and banned the user

Regarding the question… I will do more research… TBH it’s not clear for me right now

I asked on twitter :smiley:

1 Like

Ok, the wallet will recieve the pool rewards but will not receive stake rewards (because is not delegated)… so it should be fine

did u managed to apply the changes?

1 Like

Thanks for the information Alex. That’s good to know. I have not submitted the modify transaction yet. I’ve got that schedule for later this evening. I’ll update the thread when it’s completed.


You can always open the script file using a text editor, and then search for error messages and/or other text that the script displays as a starting point for understanding and resolving such issues / bugs. beakersbike, your error message you report appears only once in in line 2096:

getBaseAddress ${owner_wallets[0]}
getBalance ${base_addr}
if [[ ${assets[lovelace]} -eq 0 ]]; then
println ERROR “\n${FG_RED}ERROR${NC}: no funds available in owner wallet ${FG_GREEN}${owner_wallets[0]}${NC}”
waitForInput && continue

Conducting further text searches, for example to continue investigating the issue / bug you report, in the file named cntools.library the getBaseAddress command is defined starting in line 818 and the getBalance command is defined starting in line 881. In line 132, the script reads the cntools.library script. Initially, I would also investigate assets[lovelace]

Using such an approach, you can continue investigating until the reason for the issue becomes apparent to you.

1 Like

Hey Alex. I submitted the pool modify transaction and everything is functioning as expected. Thanks for your assistance.

1 Like

You’re welcome

Thanks Paradox. That’s a good technique to remember.