Types used in the public API
This is used to generate a new UniquePubkey
from a MainPubkey, and the corresponding
DerivedSecretKey from the MainSecretKey of that MainPubkey.
Types used in the public API
This is the key that unlocks the value of a CashNote.
Holding this key gives you access to the tokens of the
CashNote with the corresponding UniquePubkey.
Like with the keys to your house or a safe, this is not something you share publicly.
Utilities exposed
Load the genesis CashNote.
The genesis CashNote is the first CashNote in the network. It is created without
a source transaction, as there was nothing before it.
Types used in the public API
A CashNote MainSecretKey is held by anyone who wants to
send or receive tokens using CashNotes. It is held privately
and not shared with anyone.
A payment quote to store data given by a node to a client
Note that the PaymentQuote is a contract between the node and itself to make sure the clients aren’t mispaying.
It is NOT a contract between the client and the node.
Types used in the public API
SignedSpends are the core of the Network’s transaction system.
They are the data type on the Network used to commit to a transfer of value. Analogous to a transaction in Bitcoin.
They are signed piece of data proving the owner’s commitment to transfer value.
Spends refer to their ancestors and descendants, forming a directed acyclic graph that starts from Genesis.
Types used in the public API
Represents a spent UniquePubkey on the Network.
When a CashNote is spent, a Spend is created with the UniquePubkey of the CashNote.
It is then sent to the Network along with the signature of the owner using the DerivedSecretKey matching its UniquePubkey.
A Spend can have multiple ancestors (other spends) which will refer to it as a descendant.
A Spend’s value is equal to the total value given by its ancestors, which one can fetch on the Network to check.
A Spend can have multiple descendants (other spends) which will refer to it as an ancestor.
A Spend’s value is equal to the total value of given to its descendants.
Types used in the public API
The address of a SignedSpend in the network.
This is used to check if a CashNote is spent, note that the actual CashNote is not stored on the Network.
Types used in the public API
A Unique Public Key is the unique identifier of a CashNote and its SignedSpend on the Network when it is spent.
It is the mechanism that makes transactions untraceable to the real owner (MainPubkey).
It is the equivalent to using a different key for each transaction in bitcoin.
Utilities exposed
Based on the given store cost, it calculates what’s the expected amount to be paid as network royalties.
Network royalties fee is expected to be 15% of the payment amount, i.e. 85% of store cost + 15% royalties fees.
Utilities exposed
Create a first CashNote given any key (i.e. not specifically the hard coded genesis key).
The derivation index is hard coded to ensure deterministic creation.
This is useful in tests.