Skip to main content

Edwards BLS12

Edwards BLS12 is a twisted Edwards curve defined over the same base field as BLS12-377's scalar field Fr. The twisted Edwards form:

−x² + y² = 1 + d·x²·y²

gives complete, exception-free addition laws — no special cases for the point at infinity.

Parameters

ParameterValue
a−1
d3021
Base field (Fq)The BLS12-377 scalar field Fr (253 bits): 8444461749428370424248824938781546531375899335154063827935233455917409239041
Cofactor4
Compressed point size32 bytes — the x-coordinate plus a sign bit for y

Because a = −1, the multiplication-by-a step in point addition reduces to a negation, which is very cheap.

The curve is birationally equivalent to a Montgomery curve, allowing conversion when that form is more efficient.

Usage

Edwards BLS12 is used for:

  • Aleo account addresses
  • Private key derivation
  • Transaction signatures
  • Any elliptic-curve operations that need to be expressed as circuit constraints inside BLS12-377 proofs

Because the Edwards BLS12 base field Fq is exactly the BLS12-377 scalar field Fr, operations on Edwards BLS12 can be represented as native arithmetic constraints — no field extension tricks needed.


Field Parameters

Scalar Field

Modulus

Integer Representation
2111115437357092606062206234695386632838870926408408195193685246394721360383
Hexadecimal Representation
04aad957a68b2955982d1347970dec005293a3afc43c8afeb95aee9ac33fd9ff
U64 Representation (Little-Endian)
[13356249993388743167, 5950279507993463550, 10965441865914903552, 336320092672043349]

Root of Unity

Integer Representation
319259817323897909850357899558356952867916286821886696195104543796545181129
Hexadecimal Representation
00b4b1d4c7e5e163b1af246173fdb411bdb82ac32901dcb9d289433ff2b7d5c9
U64 Representation (Little-Endian)
[15170730761708361161, 13670723686578117817, 12803492266614043665, 50861023252832611]

Base Field

Modulus

Integer Representation
8444461749428370424248824938781546531375899335154063827935233455917409239041
Hexadecimal Representation
12ab655e9a2ca55660b44d1e5c37b00159aa76fed00000010a11800000000001
U64 Representation (Little-Endian)
[725501752471715841, 6461107452199829505, 6968279316240510977, 1345280370688173398]

Root of Unity

Integer Representation
5928890464389279575069867463136436689218492512582288454256978381122364252082
Hexadecimal Representation
0d1ba211c5cc349cd7aacc7c597248269a14cda3ec99772b3c3d3ca739381fb2
U64 Representation (Little-Endian)
[4340692304772210610, 11102725085307959083, 15540458298643990566, 944526744080888988]