From 1f18c86483a85d4075702978c6031694165ac1fa Mon Sep 17 00:00:00 2001 From: Will Ruddick Date: Tue, 19 May 2020 09:10:41 +0000 Subject: [PATCH] Update 006_Self_Service_Token.md --- spec/006_Self_Service_Token.md | 67 +++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/spec/006_Self_Service_Token.md b/spec/006_Self_Service_Token.md index 4dec657..4c1b122 100644 --- a/spec/006_Self_Service_Token.md +++ b/spec/006_Self_Service_Token.md @@ -12,14 +12,52 @@ valid status values are: Pre-draft|Draft|Proposal|Accepted Enabeling users to create their own tokens is one of the main goals of CICs ## Intro -Today users only receive tokens created by Grassroots Economics - the reserves of these tokens are donors giving to Grassroots Economics. -This means Users have very little ‘feeling’ of reserve depletion because it is not their token and not their money behind it. -We want users to be able to create their tokens to create more ownership and diffusion. -A CIC primarliy represents the goods and services committed by the Issuer - which should be a Group Account. -The CIC has an enforced 25% reserve amount. +* Today users only receive tokens created by Grassroots Economics - the reserves of these tokens are donors giving to Grassroots Economics. +* This means Users have very little ‘feeling’ of reserve depletion because it is not their token and not their money behind it. +* We want users to be able to create their tokens to create more ownership and diffusion. +* A CIC primarliy represents the goods and services committed by the Issuer - which should be a Group Account. +* The CIC has an enforced X% reserve amount. + + +## Token creation process - Backend + +1. Ensure TOKEN_Name is unique +2. Generate a token and converter (adding it to the registry) on xDAI and store private and public keys +1. Mint the standard amount of tokens. (4x the reserve = 40,000) +1. Convert the existing user's tokens into xDAI and put them into the converter as reserve. (min 10,000) +1. The new token should have a value of 1:1 with xDAI and be at 25% reserve (Target Reserve Ratio) +1. Put the TOKEN_NAME tokens into the Users wallet (Group wallet) - note that when other users later join (via my account -> join Chama) the TOKEN_NAME they will receive tokens from this wallet. - there is a contract here. +1. The token owner should not be able to transfer more tokens than he has committed to the number of token users specified. +1. The token owner should have his community token for auto-convert set to TOKEN_NAME +1. This account is a GROUP account. Meaning that only it can cash out 50% a month from it’s own reserve - along with other Chama rules. +1. If the token has been created send the SMS for the token creation approval. Else send error. + ## Token creation process - UI -(I will describe this for USSD be a web interface should also be made) + +### Command Line - CLI +1. Inputs + 1. User ID (must be a chama account) + 2. Token Long Name - 128 character limit + 3. Token short name no more than 6 Character - must be uni + 2. amount of tokens (must be converted to reserve) they want to put in reserve (minimum 100k xDAI) + 3. number of chama members (NCM) (before we enable conversion of the new tokens there must be this many token members with a positive token balance) + 4. Token Backing Statement: 256 Character limit +5. Confirmation please type the token name to proceed + + +### CIC Mgmt Platform - GUI +1. On a user account there should be a button for Create Token - possible for Chama accounts only) - this required admin provlages +2. The next page comes up with the inputs: + 2. Token Long Name - 128 character limit + 3. Token short name no more than 6 Character + 2. amount of tokens (must be converted to reserve) they want to put in reserve (minimum 100k xDAI) + 3. number of chama members (NCM) (before we enable conversion of the new tokens there must be this many token members with a positive token balance) + 4. Token Backing Statement: 256 Character limit +5. Confirmation please type the token name to proceed + +### USSD feature phones + 1. Existing User calls Sarafu - New user dials ***483****46# where she selects - My Account -> Create Token @@ -33,7 +71,7 @@ The CIC has an enforced 25% reserve amount. 3. Chosen Options 1. Token Name (limited to 9 characters (auto converted to lowercase no special letters) (TOKEN_NAME) 2. Reserve amount (the minimum is 10,000 Kenyan Shillings in value- higher amount means a higher price of the final tokens) - Max is the user’s current balance. Note that this10,000 Kenyan Shillings can be in the form of other tokens and converted to Sarafu. - 3. What goods or services will be accepted for these tokens? + 3. Token Backing Statement: What goods or services will be accepted for these tokens? 4. Please confirm that you will accept (4x Reserve) of TOKEN_NAME's for (goods or services)? *. Yes / No (if no -please contact Office 0757628885) 4. How many people are in this chama that will recieve (Token_Name) - Minimum 10 - Note your account will be locked until you've sent out all all your tokens to this many users. @@ -66,19 +104,6 @@ The CIC has an enforced 25% reserve amount. * Send an SMS to the user with the following text: * “Whoops! There was a problem creating your token. To try again Dial *483*46#. If issues persist contact support: 0757628885” -## Token creation process - Backend - -1. Start this process between step 5 to 6, -1. Save all the information created in the process on the SEMPO DB. -1. Generate a token and converter (adding it to the registry) on xDAI and store private and public keys -1. Mint the standard amount of tokens. (4x the reserve = 40,000) -1. Convert the existing user's tokens into xDAI and put them into the converter as reserve. (min 10,000) -1. The new token should have a value of 1:1 with xDAI and be at 25% reserve (Target Reserve Ratio) -1. Put the TOKEN_NAME tokens into the Users wallet (Group wallet) - note that when other users later join (via my account -> join Chama) the TOKEN_NAME they will receive tokens from this wallet. - there is a contract here. -1. The token owner should not be able to transfer more tokens than he has committed to new users. -1. The token owner should have his community token for auto-convert set to TOKEN_NAME -1. This account is a GROUP account. Meaning that only it can cash out 50% a month from it’s own reserve - along with other Chama rules. -1. If the token has been created send the SMS for the token creation approval. Else send error. ## Action items: @@ -99,7 +124,7 @@ Note that the receipt messages for token transfers that include a conversion sho 3. Minimum starting reserve 10,000 xDAI 4. Minimum number of chama members (conversion will be locked until the new tokens are sent to this many users) 4. Token Name -5. All users should have a 'community token' +5. Number of users that must join the chama and receive tokens 5. Auto-Conversion should by default change all tokens in a user's wallet into their community token. * Note that a user with Sarafu in their wallet will shift their community token to whomever they trade with that is not in Sarafu. (Sarafu is just a temorary token)