I'm not completely sure what is "modulo(%)" of a public key, but my best guess is that you ask about the order of the points on the elliptic curve. It is returned by the method .order()
. For secp256k1 it can be obtained as
p = ZZ('0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F')
E = EllipticCurve( GF(p), [0, 7] )
n = E.order()
print('decimal representation:', n)
print('hexadecimal representation:', n.hex())
This matches the curve parameters given on page 9 in Standards for an efficient cryptography.