EOSCommunity.org Forums

Fixing transaction declares authority "something", but does not have signatures for it

A common error many users are experiencing is one which declares:

transaction declares authority '{"actor": "accountname", "permission": "active"}' but does not have signatures for it under...

If you are seeing this error, it is due to one of the following reasons:

  • The account wasn’t imported properly into your wallet.
  • The keys to the account have changed and the key you have loaded is not valid.
  • If the account name isn’t yours, the transaction couldn’t be completed because the wallet is adding an account incorrectly or using the wrong account.

First: Try reimporting your account

Note: Before proceeding, make sure you have your private keys (the ones that start with the number 5) backed up safely outside of your wallet.

In whatever wallet you are using, remove the account that is not working. Then, using your private key, reimport the account into your wallet to set it up again. Then try your transaction again.

If you are using Anchor (Desktop), this process would be:

  1. Click the account dropdown in the upper left, and select “Manage Accounts”.
  2. Select the account that is not working and use the dropdown menu item on the right side of it.
  3. Hit “Remove Account” and enter your password.
  4. Click “Import Account” in the upper left of the Manage Wallets interface.
  5. Select “Existing Account”, and then “Import via Private Key”.
  6. Enter your private key and it will find the associate accounts.
  7. Check the checkbox next to the account/permissions you’d like to import (active 99% of the time, no need for owner)
  8. Enter your password.

If your account is not found in step number 6 - this means one of two things.

  1. The key you are using isn’t the key to the account you’re trying to load. Make sure you’re using the right key.
  2. Anchor is connected to an API that doesn’t support key lookups.

If you have never changed the API settings in Anchor before, the situation you’re in is likely the first. It isn’t the correct key.

Second: Make sure you have the right private key

If you’re unsure you have the correct key, this process will help you prove it one way or another.

Go into the Tools section of Anchor, and there you will find the Key Validator. This tool lets you put a private key into a text area and Anchor will then determine what the associated public key is for it. No data is ever transmitted outside of Anchor and you can also run this tool offline.

If you were to enter this private key:

5JxiJxEzfD7gQM5cQ3YYLgg8fjfSC9VNz32WtixGuA7bZcRPbZa

The public key that will return would be:

EOS5gPsNEePjnBPri1TGgMawLPCazFkTmDgFjyFZRyVaRyuN2rBT5

When you enter your private key into Anchor (starts with a 5 or PVT) it will show you the public key associated with it (starts with EOS or PUB). The public key shown can then be compared to an account on a block explorer or even searched for.

If you were to search for the public key above on bloks.io, you’ll see it is not associated to any accounts. If you try to import that key into Anchor, no accounts will be returned.

This is what is often happening when your wallet fails to load an account during the import of a private key. Take the PUBLIC key that Anchor shows you and look it up on an explorer. The other option is to go lookup your account on an explorer, by name, and view the permissions/keys area. You can see the public keys that control an account and see if it matches yours.

You can use this method to try all of your private keys to see the public keys, and check for yourself if you can find them on a block explorer.

Third: There could be a bug?

If you are using the Key Validator and its returning a public key that matches what you see on a block explorer, then there may be an issue with your wallet. Sadly, this isn’t the case most of the time.

If there are any questions or comments, or if I’m missing something important here, feel free to let me know!

3 Likes