2018-09-13 15:00:46 +00:00
---
title: Public Keys in Monero | Monero Documentation
---
# Public Keys in Monero
2018-01-07 16:47:12 +00:00
2018-01-18 12:00:19 +00:00
!!! note
2018-01-09 13:33:55 +00:00
Author is nowhere close to being a cryptographer. Be sceptical on accuracy.
2018-01-07 16:47:12 +00:00
2018-08-20 15:17:45 +00:00
Public key is deterministically derived from private key based on [edwards25519 curve ](/cryptography/asymmetric/edwards25519 ) with a little Monero-specific twist.
2018-01-07 16:47:12 +00:00
Public key is meant to be shared. Assuming correct implementation, it is not practically possible to recover private key from public key.
Public key is a **point (x,y)** on the elliptic curve.
In equations points are represented by **uppercase letters** .
In user-facing contexts, public key is encoded in a [little-endian ](https://en.wikipedia.org/wiki/Endianness#Little ) hexadecimal form, like:
`016a941812293cf9a86071060fb090ab38d67945e659968cb8cf30e1bc725683`
## Deriving public key
Say:
* P is a public key
* x is a private key
2018-08-20 15:17:45 +00:00
* G is a "base point"; this is simply a constant specific to [edwards25519 ](/cryptography/asymmetric/edwards25519 ); this point lies on the elliptic curve
2018-01-07 16:47:12 +00:00
Then:
P = xG
The public key is simply the base point (G) multiplied by the private key (x).
Multiplying the point is adding the point to itself a number of times.
However, the addition is **not** a simple vector addition. It has a very specific
definition nicely described in [this article ](https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/ ).
What is important is that result of addition is always a point on the curve.
For example, G + G is another point on the curve.
2018-01-09 13:33:55 +00:00
## Use cases
[Monero address ](/public-address/standard-address ) is composed of public spend key and public view key.
These keys are used to build stealth addresses to receive payments.