Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: bad signature #4487

Closed
ghost opened this issue Jan 25, 2021 · 118 comments
Closed

Error: bad signature #4487

ghost opened this issue Jan 25, 2021 · 118 comments

Comments

@ghost
Copy link

ghost commented Jan 25, 2021

A few users are reporting the error "1010: Invalid Transaction: Transaction has a bad signature" when trying to send KSM/DOT from their Ledger.

What does this error refer to?
Can more context be added to the description?

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

That gets returned from the Node itself - it means that the signature that is generated by the Ledger for the transaction payload is not recognizable by the RPC node. Not sure what can cause it in some cases.

@ghost
Copy link
Author

ghost commented Jan 25, 2021

Will check with Zondax

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

Is it widespread atm? Or a couple of users? This is quite weird - and a nightmare to track down in most cases.

@Tbaut
Copy link
Contributor

Tbaut commented Jan 25, 2021

FWIW I've seen this yesterday, with Parity Signer when I took my time (a minute or 2) between getting the payload, and actually signing it.
I did it again and signed right away, and it worked.

I was expecting an error, but I'm used to see something like "transaction expired".. so not sure the longer time I took for signing was the culprit.

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

That could be it as well - the default mortality is 5 minutes, so basically you don't have unlimited time before the transaction becomes invalid.

@MirekHruska
Copy link

Hi, few members of our community had this problem too. This is caused when you using Ledger with Kusama and Polkadot apps. In new polkadot.js.org version, account are moved accross. When you create account on polkadot and switch tu kusama network, there is new account created with kusama format address. But when you deposit that account, you can't access it to move you funds (Error: bad signature is shown). Here is video https://youtu.be/RIT5uyfDp-c and here is full video (but in czech language) https://studio.youtube.com/video/KxWrc3S4Q4E . You need to tag that accounts to be sure you will not deposit bad account.

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

Ok, so make sure you attach the account (tie to this network) in the settings. Initially when the always-show-Ledger enhancement went it, it didn't tie it to a specific chain.

The UI does do that at this now since the start of last week - but for accounts that were added before, you need to click the below toggle under the 3 ellipsis, so it only shows on the specific chain.

image

If done on e.g. Polkadot, it won't show anywhere else but on Polkadot.

@ghost
Copy link
Author

ghost commented Jan 25, 2021

Jaco: So in order to prevent this from happening, users should make sure that "only this network" is switch ON, yes?

Zondax team: For all the others who this has now happened to - are their tokens lost? Or is there any way to retrieve them? My understanding is that the automatically created KSM address is on their Ledger, so shouldn't they be able to access it? Or am I mistaken?

@MirekHruska
Copy link

@jacogr thanks, but I think this is serious trap for novices. Is there solution for allready deposited accounts? You can't use polkadot app on kusama network and if you try to sign your transaction with kusama app, bad signature error will appear. Are those kusama (or dots) lost forever? There are people with hundreds dot/ksm locked on that accounts.

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

Just tie the account to the network, so it only displays on that specific network. Or remove/re-add and it will by default tie.

The account visibility is within user-control here.

@MirekHruska
Copy link

@jacogr as I said, there are a lot of people that allready send their dots/ksm to that accounts. On youtube, there is a lot of instruction videos that didn't mentioned this and a lot of novices will fall into that trap in near future. So, if someone ask me if his dot/ksm is lost forever, answer is yes? Or there is solution? Thanks

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

Since accounts are always derivable by the mnemonic and the account/address indices, nothing is ever lost since you can always get the private keys based on that info.

If you have access to the seeds & offsets and it is on a device for a specific network, you can get to the funds. (The addresses are just the publicKeys in a human-readable format, if you have the mnemonic you can get to the same private key which will yield the same public key)

@MirekHruska
Copy link

@jacogr thanks. But there must be some difference, no? When I add my account on polkadto network (Ledger 0/0) and switch to kusama network and add same (Ledger 0/0), it generate two different accounts. So, solution is put memoric seed from ledger (24 words) and restore account on polkadot network from it, switch to kusama network and send KSM out?

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

No, the accounts are the same - what you are seeing is the ss58 address, when that is decoded it would yield exactly the same public key. (Addresses look different, but for the same mnemonic and offsets, it maps to the exact same public keys - it is just encoded with a checksum and a network prefix for display)

A real example -

KSM - DzdKNKTXuzoiUKdiKY4Ed21espugk7pe35HvGywk5NbWVNN
DOT - 12RJoPEemLFMQMWhuFn1UpVAMuYKaNrnG9y2guhLpNBcwwsj

Underlying to those 2 addresses, the public key is exactly the same. It refers to the same mnemonic and offsets. Just the display encoding is different. In this case for both the above different-looking addresses the decoded public key is 0x3ec60ad661b0cd95690220b7ebfd618099cdf958bac075fe6aafd1d980820b9d for both.

@MirekHruska
Copy link

MirekHruska commented Jan 25, 2021

@jacogr are you sure that accounts are same? Account Ledger 0/0 moved from Polkadot => Kusama network has different public addres than same account (0/0) directly added via add ledger button on kusama network with kusama application on Ledger device. There must be some difference, becaus if doesn't matter where you created your account, this thread shouldn't exists :-)

@jacogr
Copy link
Member

jacogr commented Jan 25, 2021

See the example above :) ss58 is only a display format. It encodes the network ss58 + public key + checksum into base58. On decoding you strip all of that and only use the public key. when sending to the node, the ss58 is not transferred, the actual public key (which is the AccountId) is.

@MirekHruska
Copy link

@jacogr ok, thanks, I will try to study it more detailed. Good news is that there is solution, superb. Thanks again.

@jleni
Copy link

jleni commented Jan 25, 2021

Hi, few members of our community had this problem too. This is caused when you using Ledger with Kusama and Polkadot apps. In new polkadot.js.org version, account are moved accross. When you create account on polkadot and switch tu kusama network, there is new account created with kusama format address. But when you deposit that account, you can't access it to move you funds (Error: bad signature is shown). Here is video https://youtu.be/RIT5uyfDp-c and here is full video (but in czech language) https://studio.youtube.com/video/KxWrc3S4Q4E . You need to tag that accounts to be sure you will not deposit bad account.

Unfortunately this is not related to the Ledger app themselves.. but the way the integration works in Polkadot.js.
I wonder why there is even this option "only this network".

@anjaw3f Would it make sense that polkadot.js adds a popup with an explanation to avoid issues being mislabeled as a problem in the apps?

@ghost
Copy link
Author

ghost commented Jan 25, 2021

This is good news! Do you have some practical instructions/steps for regular (non-techy) users to access their funds?
Apparently they can't access them right now, even though their Ledger is connected and generated that address.
What do they have to do in order to send the funds out?

@ghost
Copy link
Author

ghost commented Jan 25, 2021

@anjaw3f Would it make sense that polkadot.js adds a popup with an explanation to avoid issues being mislabeled as a problem in the apps?

I'm always for anything that makes things easier and more clear for users. We do have a lot of beginners, so the clearer we can spell things out for them the better.

@gorgos
Copy link

gorgos commented Jan 25, 2021

This is good news! Do you have some practical instructions/steps for regular (non-techy) users to access their funds?
Apparently they can't access them right now, even though their Ledger is connected and generated that address.
What do they have to do in order to send the funds out?

I second this as I'm in the same boat. Any instructions how to access the funds are greatly appreciated.

@icollectassets
Copy link

This is good news! Do you have some practical instructions/steps for regular (non-techy) users to access their funds?
Apparently they can't access them right now, even though their Ledger is connected and generated that address.
What do they have to do in order to send the funds out?

I second this as I'm in the same boat. Any instructions how to access the funds are greatly appreciated.

3rded

@elfif
Copy link

elfif commented Jan 28, 2021

Hello i'm upping up that issue that i found it being critical.
I have exactly the same issue as previously described, some KSM coins are stuck on a wallet which address is just a translation of my polkadot address, both wallets use Ledger apps on polkadotjs.
I agree with @jleni that technically issue is more on the ledger integration on polkadot-js than on the ledger itself.
Anyway we need an answer to that issue

@icollectassets
Copy link

Hello i'm upping up that issue that i found it being critical.
I have exactly the same issue as previously described, some KSM coins are stuck on a wallet which address is just a translation of my polkadot address, both wallets use Ledger apps on polkadotjs.
I agree with @jleni that technically issue is more on the ledger integration on polkadot-js than on the ledger itself.
Anyway we need an answer to that issue

I've tried everything. My ksm is gone. 30+ hours with no hope of a result.

@MirekHruska
Copy link

I'll try to look at it on weekend but right now, there is no step by step instructions. @jacogr , is it possible to create step by step instructions how to set those KSMs and DOTs free? Thanks.

@jacogr
Copy link
Member

jacogr commented Jan 28, 2021

Just to summarize the comments above -

  • If you have an Ledger account visible on multiple networks (the UI will show an indicator for those in the accounts list), just apply the "only this network" toggle. The warning will go away once toggled.

  • Newly added accounts will always tie to a specific network

If funds have been send to an address on a network where it now yields a signature error -

  • Derivation is an open standard, this means the keys can always be derived from the mnemonic + cointype + account + address (the first 2 from the app, the second two as user-selected)

  • For this, we are looking at a couple of options (couple being 2, using the standard derivation above) to ensure you can actually transfer it out (and also being able to recover keys at anytime in the future). One of those approaches is Add Ledger seed import mode #3703, the other is external to the apps UI

  • If there is an update on the previous point, will confirm - as of now just be aware that is being looked at for the best approach(es) by multiple people

If unsure about anything -

  • This is not a bug in the Ledger app itself, rather due to the app being used on the wrong network (which the first point above covers)

  • Ensure that you trust & verify, i.e. use the option in the account menu to display the address on the device - it should match if the app can sign it correctly

@icollectassets
Copy link

Note the ledger show a different address than ksm account. I've recreated. Address shown on ledger but no possible way to get same address thats on "lost" account.

@elfif
Copy link

elfif commented Jan 28, 2021

Hello @MirekHruska and @jacogr and thanks for your answers.
If you need any additional informations, or want me to perform some tests of any kind i'm all yours.

@daledenton1
Copy link

I'm also in this boat. I've just Bonded 50 KSM but when I nominate my validators and click sign and submit I get the 1010 Invalid transaction. Transaction has a bad signature.
I'm also a novice at this and do not understand all this technical stuff. Really needs to be an easier fix.

@icollectassets
Copy link

its been 28 days, i see theres an update, it says the solution was to be released in a couple hours, but i dont see any way to do it. i need to remove my ksm, and sell it to make up for everything else in the market, please someone stop what they are doing thats more important than thousands and thousands of our money likely hundreds of thousands and explain this... my ksm isnt staking, this is 28 days of this.. one of you have to understand the urgency, and for whatever reason we get blamed for doing it when its a pretty shitty design maybe the use only on this network should explain what that does. anyone want to help? ill give you the fucking 24 word phrase at this point, i just want to be out of this wallet.

@daledenton1
Copy link

They think everyone is a fucking computer engineer and can just figure this shit out! One wrong click and goodbye to my $$$

@gorgos
Copy link

gorgos commented Feb 23, 2021

Guys I understand your frustration, but you're really complaining at the wrong place about the wrong things.

The initial issue: This has never been an issue with Ledger itself and not even with the separate company developing the Ledger Polkadot/Kusama app. They worked as expected and correctly. The issue was a UX problem inside polkadot.js. And as it seems it's only one guy working on polkadot.js, so you can't really blame him either. I think it would be good for Polkadot to allocate more funding towards polkadot.js. Add a few more devs and a UX designer.

The long wait for the fix: This has never been an issue with polkadot.js, nor the Ledger app devs. They added a fix pretty quickly, but I guess it takes time for Ledger to review apps. And you can't really blame Ledger either for doing proper app reviews. If they didn't, it would jeopardize the security of all Ledger users.

So again, no point complaining here. Send a message to the Polkadot support asking that polkadot.js should become more user-friendly. And don't forget no funds here were ever lost, you just have to wait.

@daledenton1
Copy link

daledenton1 commented Feb 23, 2021

So it's no one's fault then?! My funds just got stuck but hey I must have caused it!

@gorgos
Copy link

gorgos commented Feb 23, 2021

So it's no one's fault then?! My funds just got stuck but hey I must have caused it!

As I said, it's not your fault, but the core issue was Polkadot has missed that they are a number 4 coin now and completely gone into mainstream despite not even doing that much marketing. And with the publicity come users that require an easy to understand interface. Polkadot has such amazing dev support and documentation and tech, so now it's time to also make this more accessible to end users.

@icollectassets
Copy link

dude, give us the way to get it with our phrase so it can be on us. we want a solution this underdeveloped piece of shit app shouldnt have ever been put on ledger. period. dot and ksm should be taking this a little more seriously.

@icollectassets
Copy link

ksm is the only coin up.. i need to relocate that money. or break open treasury and compensate

@daledenton1
Copy link

Yeah would have been nice to have access before this massive fucking crash!

@gorgos
Copy link

gorgos commented Feb 23, 2021

dude, give us the way to get it with our phrase so it can be on us. we want a solution this underdeveloped piece of shit app shouldnt have ever been put on ledger. period. dot and ksm should be taking this a little more seriously.

Instructions were already posted here: #4487 (comment). With the note that this should only be done if you have only KSM on Ledger and afterwards reset it to a new mnemonic.

@icollectassets
Copy link

so the dot i have 5 days left unstaking makes it where i cant do it? this is definitely a fuck up someone isnt admitting to. in no way would something be designed like this.

@avdende
Copy link

avdende commented Feb 23, 2021

Hello everyone,

The KSM and the DOT Recovery Modes are operational (on ledger devices). This recovery mode allows you to unblock and recover KSM that got accidentally sent to Polkadot addresses, and vice versa (retrieve DOT that got accidentally sent to a Kusama address).

DOT Recovery Mode:

KSM Recovery Mode:

@dartollen
Copy link

This worked and I have recovered my KSM - thank you very much for sorting this out. Really appreciate it.

@elfif
Copy link

elfif commented Feb 23, 2021

Same here, Thanks a lot to all the devs that made the fix possible.

@daledenton1
Copy link

So I've recovered my KSM and DOT funds and transferred them out of Polkadot.js but now my bonded funds in both KSM and DOT have disappeared! This thing is an absolute nightmare! Anyone care to shed some light on where these funds might be. They were both bonded funds but I was unable to stake them due to the signature issue.

@daledenton1
Copy link

My balances are visible when I enter the addresses into Polkascan. On Polkadot.js my KSM appears in account actions in staking but I get the 1010 Bad signature still when I try to unbond it? My bonded funds for DOT are nowhere. Is there something I've overlooked or is this going to be another issue?

@daledenton1
Copy link

So I've unbonded both KSM and DOT. You have to uncheck the view only on this network tab. So after the bonded period is up, am I going to be able to send my funds out of there? Took about 10 seconds to stake on Kraken! And I didn't need to have a Phd in computer engineering.

@MagnatUK
Copy link

MagnatUK commented Feb 24, 2021 via email

@daledenton1
Copy link

Yes it works with a Ledger X. I was able to retrieve and withdraw both my KSM and DOT funds on my Nano X. I'm just having trouble with my bonded funds.

@osorio200
Copy link

I have the same error but don't understand a single thing you people are saying. Can't get my KSM out.

@osorio200
Copy link

I understand it may be caused if the KSM is in a DOT address?
How can I check if the address my KSM are in is a DOT or KSM address?

@MagnatUK
Copy link

MagnatUK commented Mar 5, 2021 via email

@osorio200
Copy link

Guys, I will give $100 to whoever can help me get my funds out. If you're interested, contact me at osorio200@yahoo.com

@jleni
Copy link

jleni commented Mar 6, 2021

Guys, I will give $100 to whoever can help me get my funds out. If you're interested, contact me at osorio200@yahoo.com

The instructions+video here should be enough for you to do it...

The KSM and the DOT Recovery Modes are operational (on ledger devices). This recovery mode allows you to unblock and recover KSM that got accidentally sent to Polkadot addresses, and vice versa (retrieve DOT that got accidentally sent to a Kusama address).

DOT Recovery Mode:

KSM Recovery Mode:

@osorio200
Copy link

osorio200 commented Mar 9, 2021 via email

@catgirlcrypto
Copy link

Hello, please can anyone help me? I have KSM stuck as it was sent to a polkadot address (via Ledger X). I have tried following these instructions for KSM recovery and it's not working.

I have updated the Kusama app on my ledger device. The problem is that I cannot get the app to stay open so that I can click 10 times on Developed by: Zondax.ch as it keeps booting  me out of the Kusama app.

Can anyone advise what to do here? I really need to access me KSM urgently.

Thank you.
Margie

@osorio200
Copy link

Hi! Make sure the Ledger Live application is closed when you do the ten clicks. I had that problem too. You have to quit Ledger Live once you made sure it is updated, you won’t need to do anything with it anymore.

good luck!

@catgirlcrypto
Copy link

Thanks @osorio200 - I managed to get it into a recovered account. Now I'm having an issue transferring it back into a KSM account.

I am getting this error message:

1010: Invalid Transaction: Transaction has a bad signature

Anyone know how to resolve this?

@jacogr jacogr closed this as completed Apr 30, 2021
@polkadot-js-bot
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue if you think you have a related problem or query.

@polkadot-js polkadot-js locked as resolved and limited conversation to collaborators May 31, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests