openmoney specifications
 
open money is an aspect of free speech - it is a context 
  • see REA 
  •  
open money can be called free money 
  • as in free speech, not as in free beer / lunch / load / ride 
  •  
openmoney is a project enabling open money, operating in accordance with the principles and intellectual properties of the LETSystem Trust
 
openmoney is freely available on line

a registered steward of openmoney can be any person or organization of persons that recognizes that they are responsible for their :
  • accounting of events 
  • fulfilment of promises
 
to use open money is to mind your own business 
 
A steward has a stewardname, and a public key.
A steward may optionally provide an email and choose their notification settings.
A steward uses their stewardname and private key to authenticate themselves.
A stewards public and private key can be deterministically generated using their stewardname and password.
 
When a steward registers they are given a private namespace with the namespace name:stewardname and with the parent namespace:cc 
 
every namespace can also be a currency or accounting set with the steward of the namespace
  • currency parameters are declared by steward
  • access terms are set by steward
 
A namespace has a namespace name, parent namespace and a (set of) steward(s)
A namespace is globally unique
Namespace stewards get notified when stewards create a child namespace, currency or account.
Namespace stewards have the ability to enable or disable child namespaces, currencies, or accounts.
Namespace stewards have the ability to move child namespaces, currencies or accounts from their namespace to another.
Namespaces can be public or private, a public namespace means when a child namespace, currency or account is created it its automatically enabled, and private is automatically disabled.
 
A currency has a currency name, parent namespace, and a set of zero or more stewards.
Currency stewards get notified when stewards create an account that uses this currency.
Currency stewards have the ability to enable or disable accounts used by this currency.
Currency stewards get a copy of all journal entries that use the currency..
Currency stewards have the ability to void journal entries by posting a reversing journal entry on behalf of both parties.
Currencies can be public or private, a public currency means that when an account is created that uses this currency it is automatically enabled, and private is automatically disabled.
 
An account has an account name, account parent namespace, currency, currency parent namespace and a set of stewards.
Account stewards post journal entries from one account to another account in the same currency.
 
A Journal has a to account name, to account namespace, from account name, from account namespace, currency name, currency namespace and amount.
A Journal entry is sent to the server. The namespaces, currencies and accounts are verified that they are enabled. If they are enabled the journal entry is encrypted using the to account stewards, from account stewards and currency stewards public keys, the encrypted journal entry is stored on the server for their retrieval and the stewards are notified. 
The response is an, ok successful or an error based on the verification of the enabled state of the accounts, currencies and namespaces.