├── .gitignore ├── ethtrader_review_post_template.md ├── package.json ├── README.md ├── makeForm.gs ├── criteria.yaml └── out └── criteria.json /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | node_modules 3 | package-lock.json 4 | -------------------------------------------------------------------------------- /ethtrader_review_post_template.md: -------------------------------------------------------------------------------- 1 | Following [this thread a month ago](https://np.reddit.com/r/ethtrader/comments/6o0om9/upvote_if_you_think_ethtrader_should_create_a/), a subset of the EthTrader community [organised](https://icoreview.slack.com) to establish a [set of criteria](https://github.com/EthTrader/ico-review) for the evaluation of ICOs with the aim of education and improved standards. This effort is on-going and all feedback is appreciated on how to improve it's utility to the community. 2 | 3 | If you have familiarised yourself with the **KyberNetwork** ICO details, please consider rating their offering based on the criteria the ICO review team have established using [this form](https://goo.gl/forms/uAPWMZJngUxHZAap1). After 24 hours, responses will be aggregated and the results posted **here** (not in a new post). 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ico-review", 3 | "version": "0.0.1", 4 | "description": "ico review criteria", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "create_json": "js-yaml criteria.yaml > out/criteria.json" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/EthTrader/ico-review.git" 13 | }, 14 | "keywords": [ 15 | "ico", 16 | "review", 17 | "criteria", 18 | "ethereum", 19 | "ethtrader" 20 | ], 21 | "author": "Carl Larson ", 22 | "license": "ISC", 23 | "bugs": { 24 | "url": "https://github.com/EthTrader/ico-review/issues" 25 | }, 26 | "homepage": "https://github.com/EthTrader/ico-review#readme", 27 | "dependencies": { 28 | "js-yaml": "^3.9.1" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EthTrader ICO Community Review 2 | 3 | Following [a post](https://www.reddit.com/r/ethtrader/comments/6o2duw/eth_trader_ico_rating_service_criterion_what/) on the [EthTrader subreddit](https://www.reddit.com/r/ethtrader/) a community effort was established to crowdsource a set of criteria for evaluating ICOs. Work moved to this repo after stablising from an [initial working doc](https://docs.google.com/document/d/1oWqyVMKQ0-oAJPxNLAWiclqkHHH3TRV_J4dLI6zu6tQ). 4 | 5 | 6 | ## How to 7 | EthTrader ICO Review Request: Kin 8 | #### Create a new ICO Review Form 9 | 10 | Start a new google spreadsheet. Put the name of the ICO in **A1** (eg. 0x) and the url for the ICO in **A2** and leave the name of that sheet either **Sheet1** or rename it to **Details**. Then go to `Tools > Script editor` and paste in the contents of [the `makeForm.gs` script](makeForm.gs). Run the script and you will have auto-created a new google form (you will find it at https://docs.google.com/forms/) which you can share on [EthTrader](https://www.reddit.com/r/ethtrader/) to request reviews of the ICO. 11 | 12 | #### Contribute 13 | 14 | Any and all suggestions on phrasing, weighting/multipliers, missing or extraneous criteria, are welcome. These can be made in this repo or in project [slack](https://icoreview.slack.com). 15 | 16 | [Join us on Slack](https://icoreview.slack.com) 17 | 18 | ## About the criteria 19 | 20 | Each criteria has an associated multiplier which is a suggestion for it's relative importance. The set of criteria is intended to form the basis for crowdsourced reviews by EthTrader users. Scores from users who submitted reviews would be weighted using the multiplier and then aggregated to establish a community review score. A test review was [requested](https://www.reddit.com/r/ethtrader/comments/6tg8up/ethtrader_ico_review_for_project_0x_the_form/) and [completed](https://www.reddit.com/r/ethtrader/comments/6to94g/project_0x_ethtrader_ico_review/) for the 0x token sale. 21 | 22 | Criteria can be tagged as `flaggable` and currently 2 criteria are: **Token utility** & **Security**. These criteria require special consideration and must pass a threshold (3.5/5) for the overall review score to not be flagged with a warning. While otherwise scoring well, out of 47 respondents for the 0x review the average score for **Token utility** was 3.2. 23 | -------------------------------------------------------------------------------- /makeForm.gs: -------------------------------------------------------------------------------- 1 | function makeForm() { 2 | 3 | var response = UrlFetchApp.fetch('https://raw.githubusercontent.com/EthTrader/ico-review/master/out/criteria.json'); // get feed 4 | var data = JSON.parse(response.getContentText()); // 5 | 6 | // var name = prompt('What is the name of the ICO?'); 7 | var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 8 | var sheet = spreadsheet.getSheetByName("Details"); 9 | if(!sheet) sheet = spreadsheet.getSheetByName("Sheet1"); 10 | 11 | if(!sheet) throw new Error("No sheet named Details or Sheet1"); 12 | // var sheet = spreadsheet.getSheets()[0]; 13 | // var name = SpreadsheetApp.getActiveSpreadsheet().getName(); 14 | var name = sheet.getRange("A1").getValue(); 15 | if(!name) throw new Error("Please put the ICO name in A1 of a sheet named Details or Sheet1"); 16 | 17 | var url = sheet.getRange("A2").getValue(); 18 | 19 | var form = FormApp.create(data.form_title_template.replace('%%NAME%%', name)); 20 | form.setDescription(data.form_description_template.replace('%%NAME%%', name).replace('%%URL%%', url)); 21 | form.setConfirmationMessage('Thanks for reviewing the ' + name + ' ICO!'); 22 | form.setDestination(FormApp.DestinationType.SPREADSHEET, SpreadsheetApp.getActiveSpreadsheet().getId()); 23 | form.setShowLinkToRespondAgain(false); 24 | 25 | // var isVerifiedItem = form.addMultipleChoiceItem().setRequired(true); 26 | // 27 | // var verifiedReviewerPage = form.addPageBreakItem().setTitle('Reviewer verification'); 28 | 29 | // form 30 | // .addTextItem() 31 | // .setTitle('Please submit your Reddit/EthTrader username.') 32 | // .setRequired(true) 33 | 34 | form 35 | .addTextItem() 36 | .setTitle('Please submit a verification code. Also, see further instuctions below.') 37 | .setHelpText('Choose a random string (eg. from http://www.passwordrandom.com/query?command=password) and paste it here and also as a comment response to the appropriate top level comment in the EthTrader ICO review post.') 38 | .setRequired(true); 39 | 40 | var pages = []; 41 | 42 | data.categories.forEach(function(category){ 43 | var page = form.addPageBreakItem().setTitle(category.name); 44 | pages.push(page); 45 | category.criteria.forEach(function(criteria){ 46 | var description = criteria.description; 47 | if (criteria.children) description += ' ' + criteria.children.join(' '); 48 | form 49 | .addScaleItem() 50 | .setTitle(criteria.title) 51 | .setHelpText(description) 52 | .setBounds(1, 5) 53 | .setRequired(true); 54 | }); 55 | }); 56 | 57 | // isVerifiedItem 58 | // .setTitle('Would you like to be a verified reviewer?') 59 | // .setHelpText('Review score aggregation will result in two final scores: one from all reviewers and another from verified reviewers only.') 60 | // .setChoices([ 61 | // isVerifiedItem.createChoice('Yes', verifiedReviewerPage), 62 | // isVerifiedItem.createChoice('No', pages[0]) 63 | // ]); 64 | } 65 | -------------------------------------------------------------------------------- /criteria.yaml: -------------------------------------------------------------------------------- 1 | title: EthTrader ICO Review Criteria 2 | description: The following set of questions and criteria are intended for the evaluation of an ICO based on project legitimacy and viability. Any results or scoring is not intended as indication of future price performance. 3 | form_title_template: '%%NAME%%: EthTrader ICO Review' 4 | form_description_template: |- 5 | Welcome to the %%NAME%% Ethtrader ICO Review form. Details for this ICO can be found at %%URL%%. 6 | This form is a set of questions to review the legitimacy and encourage improved standards for ICOs. 7 | 8 | There are 5 categories: Tech, Token, Funding, Roadmap, and Team. Please rate the considerations under each category on a scale of 1-5. 9 | 10 | This form was built thanks to the help of the ICO Review Service Team. Please pm u/carlslarson on Reddit with an email address for an invite to the Slack. We welcome all feedback. 11 | 12 | The code and instructions for auto-generating this form can be found at the official repo: 13 | https://github.com/EthTrader/ico-review 14 | categories: 15 | - name: Tech 16 | criteria: 17 | - title: Concept description 18 | description: Has the concept been fully thought through and described? 19 | multiplier: 2 20 | max_score_100: 13 21 | children: 22 | - Has a high quality whitepaper been published? 23 | - title: Ethereum suitability 24 | description: Does the concept benefit from blockchain or smart contract functionality? 25 | multiplier: 1 26 | max_score_100: 7 27 | - title: Current development 28 | description: How advanced are the development efforts? 29 | multiplier: 1.5 30 | max_score_100: 10 31 | children: 32 | - Is there a prototype or proof of concept? 33 | - name: Token 34 | criteria: 35 | - title: Token utility 36 | description: How useful or necessary is the token? 37 | multiplier: 3 38 | flaggable: true 39 | max_score_100: 9 40 | children: 41 | - Could a competitor take the code and remove the token or replace with ether? 42 | - title: Token holder influence 43 | description: Do token holders retain influence over the project? 44 | multiplier: 1 45 | max_score_100: 5 46 | children: 47 | - Built-in governance, project decision-making? 48 | - Control over release of funds? 49 | - Degree of dependence on company? 50 | - name: Funding 51 | criteria: 52 | - title: Funds handling 53 | description: How is the project handling its funds? 54 | multiplier: 1 55 | max_score_100: 5 56 | children: 57 | - Are funds distributed over time and by approval of a token holder influenced governance structure? 58 | - Are the funds being held under proper control? 59 | - How will funds be liquidated? what is in place to ensure plan is held? 60 | - Is there a refund option towards contributors in the event of excess funds? 61 | - title: Distribution 62 | description: If a wider token distribution is desired are reasonable steps being taken to achieve this? 63 | multiplier: 1 64 | max_score_100: 2 65 | children: 66 | - Would consolidation of token supply among whales be detrimental to the project? 67 | - title: Security 68 | description: Have all measures been exhausted to ensure secure possession and distribution of funds and tokens? 69 | multiplier: 1 70 | flaggable: true 71 | max_score_100: 6 72 | children: 73 | - Has any relevant smart contract code been released well in advance of the token launch? 74 | - Has a bug bounty been established to incentivise the discovery of exploits and bugs? 75 | - Have code auditing rounds been completed and published? 76 | - title: Cap structure 77 | description: What is the cap structure? 78 | multiplier: 1 79 | max_score_100: 3 80 | children: 81 | - Is this cap reasonable with the goals they want to achieve? Is it congruent with their budget plan? 82 | - name: Roadmap 83 | criteria: 84 | - title: Roadmap 85 | description: Clear and specific deadlines for the completion of various parts of the project? 86 | multiplier: 1 87 | max_score_100: 6 88 | - title: Budget 89 | description: Is there a complete and viable budget plan? 90 | multiplier: 1 91 | max_score_100: 6 92 | children: 93 | - Where are the funds being allocated? Do these allocation of funds make sense and are the amounts reasonable figures? 94 | - Is there an outlined compensation plan for employees that is reasonable? 95 | - Does the company have well reasoned cash flow projections (when will they start making money)? 96 | - title: Marketing 97 | description: Is there a clear and well defined marketing plan? 98 | multiplier: 1 99 | max_score_100: 2 100 | children: 101 | - Is branding taken seriously? Is there a strong and well maintained social media presence? 102 | - title: Legal 103 | description: Has there been appropriate consideration of legal matters? 104 | multiplier: 1 105 | max_score_100: 5 106 | children: 107 | - Has the company provided an analysis of legal issues presented? 108 | - Is there a significant legal risk to token holders or other actors? 109 | - Does the project have a identifiable legal representation? 110 | - name: Team 111 | criteria: 112 | - title: Reputation 113 | description: Are the team members within the project reputable? 114 | multiplier: 1 115 | max_score_100: 8 116 | children: 117 | - Have they been active in the blockchain community? 118 | - Does the team have a history of successful projects? 119 | - title: Communications 120 | description: 'Is the team present and responsive in prominent communications channels: Slack/Subreddit/Website/podcasts/etc?' 121 | multiplier: 1 122 | max_score_100: 5 123 | - title: Staffing 124 | description: Does the team currently, or plan to have, the staff it needs (i.e. solidity developers, marketers, legal, community managers, etc.) to carry out this project? 125 | multiplier: 1 126 | max_score_100: 2 127 | -------------------------------------------------------------------------------- /out/criteria.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "EthTrader ICO Review Criteria", 3 | "description": "The following set of questions and criteria are intended for the evaluation of an ICO based on project legitimacy and viability. Any results or scoring is not intended as indication of future price performance.", 4 | "form_title_template": "%%NAME%%: EthTrader ICO Review", 5 | "form_description_template": "Welcome to the %%NAME%% Ethtrader ICO Review form. Details for this ICO can be found at %%URL%%.\nThis form is a set of questions to review the legitimacy and encourage improved standards for ICOs.\n\nThere are 5 categories: Tech, Token, Funding, Roadmap, and Team. Please rate the considerations under each category on a scale of 1-5.\n\nThis form was built thanks to the help of the ICO Review Service Team. Please pm u/carlslarson on Reddit with an email address for an invite to the Slack. We welcome all feedback.\n\nThe code and instructions for auto-generating this form can be found at the official repo:\nhttps://github.com/EthTrader/ico-review", 6 | "categories": [ 7 | { 8 | "name": "Tech", 9 | "criteria": [ 10 | { 11 | "title": "Concept description", 12 | "description": "Has the concept been fully thought through and described?", 13 | "multiplier": 2, 14 | "max_score_100": 13, 15 | "children": [ 16 | "Has a high quality whitepaper been published?" 17 | ] 18 | }, 19 | { 20 | "title": "Ethereum suitability", 21 | "description": "Does the concept benefit from blockchain or smart contract functionality?", 22 | "multiplier": 1, 23 | "max_score_100": 7 24 | }, 25 | { 26 | "title": "Current development", 27 | "description": "How advanced are the development efforts?", 28 | "multiplier": 1.5, 29 | "max_score_100": 10, 30 | "children": [ 31 | "Is there a prototype or proof of concept?" 32 | ] 33 | } 34 | ] 35 | }, 36 | { 37 | "name": "Token", 38 | "criteria": [ 39 | { 40 | "title": "Token utility", 41 | "description": "How useful or necessary is the token?", 42 | "multiplier": 3, 43 | "flaggable": true, 44 | "max_score_100": 9, 45 | "children": [ 46 | "Could a competitor take the code and remove the token or replace with ether?" 47 | ] 48 | }, 49 | { 50 | "title": "Token holder influence", 51 | "description": "Do token holders retain influence over the project?", 52 | "multiplier": 1, 53 | "max_score_100": 5, 54 | "children": [ 55 | "Built-in governance, project decision-making?", 56 | "Control over release of funds?", 57 | "Degree of dependence on company?" 58 | ] 59 | } 60 | ] 61 | }, 62 | { 63 | "name": "Funding", 64 | "criteria": [ 65 | { 66 | "title": "Funds handling", 67 | "description": "How is the project handling its funds?", 68 | "multiplier": 1, 69 | "max_score_100": 5, 70 | "children": [ 71 | "Are funds distributed over time and by approval of a token holder influenced governance structure?", 72 | "Are the funds being held under proper control?", 73 | "How will funds be liquidated? what is in place to ensure plan is held?", 74 | "Is there a refund option towards contributors in the event of excess funds?" 75 | ] 76 | }, 77 | { 78 | "title": "Distribution", 79 | "description": "If a wider token distribution is desired are reasonable steps being taken to achieve this?", 80 | "multiplier": 1, 81 | "max_score_100": 2, 82 | "children": [ 83 | "Would consolidation of token supply among whales be detrimental to the project?" 84 | ] 85 | }, 86 | { 87 | "title": "Security", 88 | "description": "Have all measures been exhausted to ensure secure possession and distribution of funds and tokens?", 89 | "multiplier": 1, 90 | "flaggable": true, 91 | "max_score_100": 6, 92 | "children": [ 93 | "Has any relevant smart contract code been released well in advance of the token launch?", 94 | "Has a bug bounty been established to incentivise the discovery of exploits and bugs?", 95 | "Have code auditing rounds been completed and published?" 96 | ] 97 | }, 98 | { 99 | "title": "Cap structure", 100 | "description": "What is the cap structure?", 101 | "multiplier": 1, 102 | "max_score_100": 3, 103 | "children": [ 104 | "Is this cap reasonable with the goals they want to achieve? Is it congruent with their budget plan?" 105 | ] 106 | } 107 | ] 108 | }, 109 | { 110 | "name": "Roadmap", 111 | "criteria": [ 112 | { 113 | "title": "Roadmap", 114 | "description": "Clear and specific deadlines for the completion of various parts of the project?", 115 | "multiplier": 1, 116 | "max_score_100": 6 117 | }, 118 | { 119 | "title": "Budget", 120 | "description": "Is there a complete and viable budget plan?", 121 | "multiplier": 1, 122 | "max_score_100": 6, 123 | "children": [ 124 | "Where are the funds being allocated? Do these allocation of funds make sense and are the amounts reasonable figures?", 125 | "Is there an outlined compensation plan for employees that is reasonable?", 126 | "Does the company have well reasoned cash flow projections (when will they start making money)?" 127 | ] 128 | }, 129 | { 130 | "title": "Marketing", 131 | "description": "Is there a clear and well defined marketing plan?", 132 | "multiplier": 1, 133 | "max_score_100": 2, 134 | "children": [ 135 | "Is branding taken seriously? Is there a strong and well maintained social media presence?" 136 | ] 137 | }, 138 | { 139 | "title": "Legal", 140 | "description": "Has there been appropriate consideration of legal matters?", 141 | "multiplier": 1, 142 | "max_score_100": 5, 143 | "children": [ 144 | "Has the company provided an analysis of legal issues presented?", 145 | "Is there a significant legal risk to token holders or other actors?", 146 | "Does the project have a identifiable legal representation?" 147 | ] 148 | } 149 | ] 150 | }, 151 | { 152 | "name": "Team", 153 | "criteria": [ 154 | { 155 | "title": "Reputation", 156 | "description": "Are the team members within the project reputable?", 157 | "multiplier": 1, 158 | "max_score_100": 8, 159 | "children": [ 160 | "Have they been active in the blockchain community?", 161 | "Does the team have a history of successful projects?" 162 | ] 163 | }, 164 | { 165 | "title": "Communications", 166 | "description": "Is the team present and responsive in prominent communications channels: Slack/Subreddit/Website/podcasts/etc?", 167 | "multiplier": 1, 168 | "max_score_100": 5 169 | }, 170 | { 171 | "title": "Staffing", 172 | "description": "Does the team currently, or plan to have, the staff it needs (i.e. solidity developers, marketers, legal, community managers, etc.) to carry out this project?", 173 | "multiplier": 1, 174 | "max_score_100": 2 175 | } 176 | ] 177 | } 178 | ] 179 | } 180 | --------------------------------------------------------------------------------