If I have a x coordinate without any prefix such as 03 or 02 fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556 will it be possible to compute the correct y coordinate that would be usually generated normally given that private key is smaller that (n - 1) / 2, because public keys after that have same x coordinates but with different y coordinates. If not, can someone explain me how bitcoin public key generation selects the correct y coordinate normally? sorry incase answer was too easy, I am not too knowledgeable about all this stuff.

1 Answer 1


There is no known relation between the parity of the Y coordinate and any property of the private key (like whether it's in the low or high half).

In BIP340, which defines the Schnorr-based digital signature scheme used in Bitcoin, x-only public keys are used, which just consist of an X coordinate without information about the Y coordinate.

Internally, this scheme treats the Y coordinate as implicitly even (as if there was a 02 in front). This is accomplished by, if the provided signing private key has a corresponding odd Y coordinate, negating the private key (which switches the Y coordinate to even) at signing time.

  • thanks for answering that I tried taking the even keys as correct, and when I try adding the generator point to it, it sometimes goes in the backward direction, is there any way I can generate the next x coordinate from the previous x coordinate without using y coordinate? is it okay to ask questions in comments?
    – Zetock
    Nov 20 at 0:23
  • If you're going to do point additions, you really need to know both X and Y coordinates. Nov 20 at 1:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.