Every possible X coordinate on secp256k1 has two corresponding Y coordinates, one of which is the negation of the other. I've also been told that every possible Y coordinate has three corresponding X coordinates (due to the fact that the field size p = 1 mod 3). Is there also a nice relationship between them? Given a point on the curve, how can I obtain the other two points with the same Y coordinate?

1 Answer 1


Yes, there is!

For a given Y coordinate y, if on the curve, the three corresponding X coordinates are the cube roots of y2 - 7. If you have any such cube root y0, then multiplying it with a cube root of 1 gives you another cube root - for the simple reason that (y0 ∛1)3 = y03(∛1)3 = y031 = y03.

Modulo p = 2256-232-977 (the secp256k1 field size), the three cube roots of 1 are:

  • 1 (obviously)
  • 60197513588986302554485582024885075108884032450952339817679072026166228089408
  • 55594575648329892869085402983802832744385952214688224221778511981742606582254

This is exactly analogous to what's going on for the corresponding Y coordinates given an X coordinate; only there the different Y coordinates are related by multiplication with square roots of 1, namely 1 and -1 = p-1.

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.