We have a number of possible types of elliptic curve methods. These have a field (the prime number used), the order (the number of elliptic curve points), an *a* value, a *b* value, and a generator point (*G*). For a Weierstrass curve the standard form is *y*²=*x*³+*ax*+*b *(such as secp256k1). With a twisted Edwards curve (such as Ed25519) we have the form of *ax²*+*y*²=1+*dx*²*y*². A Montgomery curve has the form of *by²*=*x*³+*ax*²+*x*.

With ECC, we typically take a base point (G) and multiply it with our private key (sk), and then generate our public key point (sk.G). A sample run for secp256k1 and for 1,000G is [here]:

Curve: secp256k1

====================

G: (0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 , 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8)

Bit size: 256

Order: 115792089237316195423570985008687907852837564279074904382605163141518161494337

Field: 115792089237316195423570985008687907853269984665640564039457584007908834671663

a: 0

b: 7

====================1000G: (0x4a5169f673aa632f538aaa128b6348536db2b637fd89073d49b6a23879cdb3ad , 0xbaf1e702eb2a8badae14ba09a26a8ca7cb1127b64b2c39a1c7ba61f4a3c62601)Point add (add 1G on)1001G: (0x9d1abaec9f5715a15c7628244170951e0f85e87f68ca5393d3f9fc3fa23a69c8 , 0xf21ee70050dbb61c238c89e62942353871b010e798867bdd149ad28b3f28cadf)Point subtraction (take 1G off)1000G: (0x4a5169f673aa632f538aaa128b6348536db2b637fd89073d49b6a23879cdb3ad , 0xbaf1e702eb2a8badae14ba09a26a8ca7cb1127b64b2c39a1c7ba61f4a3c62601)The first 10 points ...

(1,29896722852569046015560700294576055776214335159245303116488692907525646231534)

(2,46580984542418694471253469931035885126779956971428003686700937153791839982430)

(3,94471189679404635060807731153122836805497974241028285133722790318709222555876)

(4,75283998438183369598817001785077409976464767920444208230223825605154713824156)

(5,None)

(6,19112057249303445409876026535760519114630369653212530612662492210011362204224)

(7,None)

(8,91736135629086734185706894124002126994554994840140056297753929940646699135966)

(9,None)

(10,None)

The field is the prime number used, and the order is the number of points on the curve. We can see we have the form of *y*²=*x*³+7. The outline code is [here]: