CompressedPublicKey
33-byte compressed secp256k1 public key
33-byte compressed secp256k1 public key with validated prefix byte.
Definition
class CompressedPublicKey(_SizedHexBytes):
_size = 33Construction
Parameter
Type
Required
Description
val
bytes | str | int
Yes
Hex string, raw bytes, or integer
Raises ValueError if:
Length is not exactly 33 bytes
First byte is not
0x02or0x03
Example
from eth_keys import keys as eth_keys
from seismic_web3 import PrivateKey, CompressedPublicKey
import os
private_key = PrivateKey(os.urandom(32))
sk = eth_keys.PrivateKey(bytes(private_key))
pubkey = CompressedPublicKey(sk.public_key.to_compressed_bytes())Compressed format
Seismic uses compressed public keys exclusively:
1-byte prefix (
0x02for even y,0x03for odd y) + 32-byte x-coordinate33 bytes total, versus 65 bytes for uncompressed keys
See Also
PrivateKey — corresponding private key type
SeismicElements — uses CompressedPublicKey for
encryption_pubkeyecdh — ECDH key derivation with public keys
Last updated

