Update 006_Self_Service_Token.md

This commit is contained in:
Will Ruddick 2020-05-18 12:11:08 +00:00
parent bd590c2602
commit 9abcba2d46
1 changed files with 39 additions and 35 deletions

View File

@ -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 users 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 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.
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 its 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 its 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
<!--
Please describe what test vectors that are required for this implementation
-->
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
<!--