SEC 1, § 2.3.3, определяет строки октетов, которые используются почти везде: несжатую форму 0x04 ‖ x ‖ y (65 байт для P-256 и secp256k1, 97 — для P-384, 133 — для P-521) и сжатую 0x02 ‖ x или 0x03 ‖ x, где префикс задаёт чётность y (33, 49 и 67 байт). При декодировании сжатой точки уравнение кривой решается относительно y, и декодер обязан отклонить x, для которого нет допустимого y.
Какая форма встретится, зависит от экосистемы: SubjectPublicKeyInfo в X.509 почти всегда содержит несжатые точки (RFC 5480 требует их поддержки, а поддержку сжатых делает необязательной), импорт raw в WebCrypto в современных браузерах принимает для ключей ECDSA обе формы, Bitcoin примерно с 2012 года использует 33-байтные сжатые ключи, а Ethereum вычисляет адреса по 64 байтам x ‖ y без префикса 0x04. В JWK всегда есть отдельные поля x и y.
Кодировки на кривых Эдвардса и Монтгомери сжаты по самому своему устройству: открытый ключ Ed25519 — это 32-байтная координата y со знаком x в старшем бите, а X25519 передаёт только u. Несоответствие между 33-байтным и 65-байтным ключом — частая причина ошибок «invalid public key» и «point is not on the curve».