diff --git a/spec/006_Self_Service_Token.md b/spec/006_Self_Service_Token.md index 0ae9599..7aa4afa 100644 --- a/spec/006_Self_Service_Token.md +++ b/spec/006_Self_Service_Token.md @@ -22,17 +22,19 @@ We want users to be able to create their tokens to create more ownership and dif - New user dials *483*46# where she selects - My Account -> Create Token - Note that this ability is whitelisted- to be whitelisted the user must have: - 1. Been in the system as an active user for some time (at least 1 month) - 1. Have a substantial balance (his CIC converted to reserve) to reach at least 25% reserve. Minimum 100 USD in value DAI. Which will staked into the converter and leveraged into $400 of CIC tokens (the value changes as reserve is removed). + 1. Been a chama account in the system as an active user for some time (at least 3 months) + 1. Have a substantial token balance (his CIC converted to reserve) to reach at least 25% reserve. Minimum 100 USD in value DAI. + 2. Which will staked into the converter and leveraged into 4x of CIC tokens (the value changes as reserve is removed). 2. Default Token Options - *. Based on the users location the system has preset defaults: 1. 25% Target Reserve Ratio (1:1 with reserve) - 1. Minimum initial reserve is $100 USD in value + 1. Minimum initial reserve is $100 USD = 100 xDAI in value (of some inital token such as Sarafu) 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. How many initial members? (NUM)MEMBERS) - 4. How much will initial members receive (INITAL_NEWUSER_AMT) (maximum is MAX_CIC_CREATED/NUM_MEMBERS) + 3. 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) 5. Note that members must ‘join’ the token (via USSD) using the TOKEN_NAME to receive this. 4. Pin * “Enter PIN @@ -53,59 +55,61 @@ We want users to be able to create their tokens to create more ownership and dif 5. “You will receive an SMS when your TOKEN_NAME token is ready” 6. Approval * At this stage, the wallet creation starts confirmation SMS will be sent only when the Backend process (see below) is over. - * If token creation succeeds: - * Send an SMS to the user with the following text - * “You have just created the TOKEN_NAME token! - * Dial *483*46# to use TOKEN_NAME token - * Tell your members to JOIN TOKEN_NAME via My Account” - * If account creation fails: - * 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” + * If token creation succeeds: + * Send an SMS to the user with the following text + * “You have just created the TOKEN_NAME token! + * Dial *483*46# to use TOKEN_NAME token + * Tell your members to JOIN TOKEN_NAME via My Account” + * If account creation fails: + * 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 Start this process between step 5 to 6, Save all the information created in the process on the SEMPO DB. -Generate a token and converter on xDAI and store private and public keys - -Mint the standard amount of tokens. (40,000) -Convert the users tokens into nDAI and put them into the converter. (min 10,000) -The new token should have a value of at least 1:1 with nDAI and be at least at 25% reserve - -Put the TOKEN_NAME tokens into the User’s 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. - +Generate a token and converter (adding it to the registry) on xDAI and store private and public keys +Mint the standard amount of tokens. (4x the reserve = 40,000) +Convert the existing user's tokens into xDAI and put them into the converter as reserve. (min 10,000) +The new token should have a value of 1:1 with xDAI and be at 25% reserve (Target Reserve Ratio) +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. The token owner should not be able to transfer more tokens than he has committed to new users. - The token owner should have his community token for auto-convert set to TOKEN_NAME +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. +If the token has been created send the SMS for the token creation approval. Else send error. -This account is now considered a GROUP account!? Meaning that only it can cash out 50% a month from it’s own reserve. +If a users has Sarafu as their community token and end up with -If the token has been created send the SMS for the token creation approval. - -Else send error. - - -Action items: +## Action items: Token Value Alerts Whenever the token is converted to another token or nDAI and the price changes more than 10% an alter is sent to the token holders Message Alert your BALANCE TOKEN_NAME tokens have changed in +10% / -10% value and are now worth (value of Balance in nDAI) Note that the receipt messages for token transfers that include a conversion should also show the tokens exchange value (this is already ont he USSD system) - - ## Implementation + ### Workflow ### Variables +1. TRR for Self Service Tokens (SSTs) 0.25 +2. Conversion fee fos SSTs 0.005 (0.5%) +3. Minimum starting reserve 10,000 xDAI +4. Token Name +5. All users should have a 'community token' +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) ### Interface ## Testing - +1. Ensure conversions are working between tokens +2. Test out auto-conversion - one user gets sent a foreign token ... try to convert +3. The UX process and various limits - like minimum reserve +4. Ensure that any Sarafu or other token are converted to xDAI +5. Chama cash out limits remain the same - but instead of sending a GE Agent Sarafu they are sending their own token + ## Changelog