Public key: 02477ce3b986ab14d123d6c4167b085f4d08c1569963a0201b2ffc7d9d6086d2f3
```
It is easier to get started with command line, but it is more common to use this as a library. For that, check the next sections.
## API
#### class `secp256k1.PrivateKey(privkey, raw, flags)`
#### class `coincurve.PrivateKey(privkey, raw, flags)`
The `PrivateKey` class loads or creates a private key by obtaining 32 bytes from urandom and operates over it.
@ -144,11 +26,11 @@ The `PrivateKey` class loads or creates a private key by obtaining 32 bytes from
- `privkey=None` - generate a new private key if None, otherwise load a private key.
- `raw=True` - if `True`, it is assumed that `privkey` is just a sequence of bytes, otherwise it is assumed that it is in the DER format. This is not used when `privkey` is not specified.
- `flags=secp256k1.ALL_FLAGS` - see Constants.
- `flags=coincurve.ALL_FLAGS` - see Constants.
##### Methods and instance attributes
- `pubkey`: an instance of `secp256k1.PublicKey`.
- `pubkey`: an instance of `coincurve.PublicKey`.
- `private_key`: raw bytes for the private key.
- `set_raw_privkey(privkey)`<br/>
@ -189,7 +71,7 @@ To combine pubnonces, use `PublicKey.combine`.<br/><br/>
Do not pass the pubnonce produced for the respective privnonce; combine the pubnonces from other signers and pass that instead.
#### class `secp256k1.PublicKey(pubkey, raw, flags)`
#### class `coincurve.PublicKey(pubkey, raw, flags)`
The `PublicKey` class loads an existing public key and operates over it.
@ -197,7 +79,7 @@ The `PublicKey` class loads an existing public key and operates over it.
- `pubkey=None` - do not load a public key if None, otherwise do.
- `raw=False` - if `False`, it is assumed that `pubkey` has gone through `PublicKey.deserialize` already, otherwise it must be specified as bytes.
- `flags=secp256k1.FLAG_VERIFY` - see Constants.
- `flags=coincurve.FLAG_VERIFY` - see Constants.
##### Methods and instance attributes
@ -230,9 +112,9 @@ compute an EC Diffie-Hellman secret in constant time. The instance `public_key`
> NOTE: `ecdh` can only be used if the `secp256k1` C library is compiled with support for it. If there is no support, an Exception will be raised when calling it.
#### class `secp256k1.ECDSA`
#### class `coincurve.ECDSA`
The `ECDSA` class is intended to be used as a mix in. Its methods can be accessed from any `secp256k1.PrivateKey` or `secp256k1.PublicKey` instances.
The `ECDSA` class is intended to be used as a mix in. Its methods can be accessed from any `coincurve.PrivateKey` or `coincurve.PublicKey` instances.
##### Methods
@ -254,7 +136,7 @@ This function always return a tuple containing a boolean (True if not previously
recover an ECDSA public key from a signature generated by `ecdsa_sign_recoverable`. `recover_sig` is expected to be an object returned from `ecdsa_sign_recoverable` (or if it was serialized using `ecdsa_recoverable_serialize`, then first run it through `ecdsa_recoverable_deserialize`). `msg`, `raw`, and `digest` are used as described in `ecdsa_sign`.<br/><br/>
In order to call `ecdsa_recover` from a `PublicKey` instance, it's necessary to create the instance by settings `flags` to `ALL_FLAGS`: `secp256k1.PublicKey(..., flags=secp256k1.ALL_FLAGS)`.
In order to call `ecdsa_recover` from a `PublicKey` instance, it's necessary to create the instance by settings `flags` to `ALL_FLAGS`: `coincurve.PublicKey(..., flags=coincurve.ALL_FLAGS)`.
convert the result from `ecdsa_sign_recoverable` to a tuple composed of 65 bytesand an integer denominated as recovery id.
@ -268,9 +150,9 @@ convert a recoverable signature to a normal signature, i.e. one that can be used
> NOTE: `ecdsa_recover*` can only be used if the `secp256k1` C library is compiled with support for it. If there is no support, an Exception will be raised when calling any of them.
#### class `secp256k1.Schnorr`
#### class `coincurve.Schnorr`
The `Schnorr` class is intended to be used as a mix in. Its methods can be accessed from any `secp256k1.PrivateKey` or `secp256k1.PublicKey` instances.
The `Schnorr` class is intended to be used as a mix in. Its methods can be accessed from any `coincurve.PrivateKey` or `coincurve.PublicKey` instances.
##### Methods
@ -285,9 +167,9 @@ combine multiple Schnorr partial signatures. `raw_sigs` is expected to be a list
#### Constants
##### `secp256k1.FLAG_SIGN`
##### `secp256k1.FLAG_VERIFY`
##### `secp256k1.ALL_FLAGS`
##### `coincurve.FLAG_SIGN`
##### `coincurve.FLAG_VERIFY`
##### `coincurve.ALL_FLAGS`
`ALL_FLAGS` combines `FLAG_SIGN` and `FLAG_VERIFY` using bitwise OR.
@ -298,7 +180,7 @@ These flags are used during context creation (undocumented here) and affect whic