Our team (Fearless Wallet) has recently faced an issue while trying making XCM transfers between parachains on Mobile clients. The odd thing is that the same extrinsic on Polkadot JS dApp works fine without any errors. But for Mobile clients and IDE Emulators we have an error like that at 50% of cases.:

"Invalid Transaction", code: 1010, data: Optional("Transaction has a bad signature")

The extrinsic example on Polkadot JS App is here.

Here you can find a link to the extrinsic assembled on Mobile client side. We have been investigating the issue for several days. And we haven’t find any possible cause or solution yet.

We really appreciate any support and suggestions. Any ideas and advises are welcome. #stayfearless

  • In addition to Sergey's post I have to add that we have validated signature on polkadot.js.org (via Sign & Verify section) and it says that signature is valid, but network responds with 1010 bad signature error. Moreover, we have tested this way: we have generated extrinsic and just submitted it 10 times with 1 second delay (same extrinsic each time) - and it succeeds 7 out of 10 times (3 times - 1010 bad signature). Our internet connection is pretty stable, we tried from different computers, networks - same result. Apr 11, 2023 at 4:32
  • What would be helpful is if you can link the code where you send this transaction on the mobile side OR a way for us to replicate the error.
    – Bruno
    Apr 12, 2023 at 12:21

1 Answer 1


There error that you are getting is a Transaction validity BadProof error.

The Rust docs have some possible causes that may be helpful:

    /// General error to do with the transaction's proofs (e.g. signature).
    /// # Possible causes
    /// When using a signed extension that provides additional data for signing, it is required
    /// that the signing and the verifying side use the same additional data. Additional
    /// data will only be used to generate the signature, but will not be part of the transaction
    /// itself. As the verifying side does not know which additional data was used while signing
    /// it will only be able to assume a bad signature and cannot express a more meaningful error.

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.