/ README.md
README.md
  1  <!-- <p align="center"><img src="https://raw.githubusercontent.com/status-im/spesa/master/docs/spesa.png"></p> -->
  2  <h1 align="center">S-Pesa</h1>
  3  <h2 align="center">Smart Pesa - a USSD/SMS Interface to Smart Contracts, #defi & Decentralised Applications.</h2>
  4  <h3 align="center">(A Status Client for Feature Phones)</h3>
  5  
  6  Smart Pesa is a USSD/SMS Interface to Smart Contracts, #defi & Decentralised Applications
  7  
  8  - [Introduction](#introduction)
  9    - [Purpose](#purpose)
 10    - [Features](#features)
 11    - [Who is it for?](#who-is-it-for)
 12    - [What S-Pesa isn't](#what-s-pesa-isnt)
 13    - [Where does this tool come from?](#where-does-this-tool-come-from)
 14  - [Get started](#get-started)
 15    - [Requirements](#requirements)
 16  - [Contribute](#contribute)
 17    - [As a community](#as-a-community)
 18    - [As a developer](#as-a-developer)
 19  - [Principles, vision, goals](#principles-vision-goals)
 20    - [Principles](#principles)
 21    - [Vision](#vision)
 22    - [Goals](#goals)
 23    - [TODO](#todo)
 24  - [License](#license)
 25  
 26  ## Introduction
 27  
 28  TODO
 29  
 30  ### Purpose
 31  
 32  To connect & enable anyone connected to a mobile network accesss to Smart Contracts, #defi & Decentralised Applications.
 33  
 34  ### Features
 35  
 36    - Key Management
 37    - Multi-account Wallet
 38    - Access Smart Contract ABI
 39    - M-PESA Integration
 40    - DApplet Registry
 41  
 42  ### Who is it for?
 43  
 44  Anyone with a connection to a mobile network, predominantly focusing on those with feature phones in underserviced areas.
 45  
 46  ### What S-Pesa isn't
 47  
 48  Unlike Status, S-Pesa is not a decentralised client, and therefore be understood as a trusted gateway to decentralised technologies that also does key management.
 49  
 50  ### Where does this tool come from?
 51  
 52  S-Pesa comes from a want to help create popup micro-economies and help lift people out of poverty, and hopefully help these communities to adopt Blockchain-enabled technologies.
 53  
 54  ## Get started
 55  
 56  `nimble build && ./SPesa`
 57  
 58  ### Requirements
 59  
 60  - Nim 0.20.2 or above
 61  - Git
 62  - An Ethereum Node
 63  - Redis Server
 64    
 65  ## Contribute
 66  
 67  Do you want to help? That's awesome. Here are simple things you can do.
 68  
 69  ### As a community
 70  
 71  * Unlike Fight Club, the best way to help is **to actually talk about the project** as much as you can (blog post, articles, Twitter, Facebook).
 72  * You can answer questions in [the issue tracker](https://github.com/status-im/SPesa/issues) to help other community members.
 73  
 74  ### As a developer
 75  
 76  * Read our [Contribution Guide](/CONTRIBUTING.md).
 77  * Install the developer version locally so you can start contributing [instructions](/docs/contribute/index.md).
 78  * Look for [issues labelled bugs](https://github.com/status-im/SPesa/issues?q=is%3Aopen+is%3Aissue+label%3Abug) if you are looking to have an immediate impact on the project.
 79  * Look for [issues labelled Help wanted](https://github.com/status-im/SPesa/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) These are issues that you can solve relatively easily.
 80  * Look for [issues labelled Good first issue](https://github.com/status-im/SPesa/labels/good%20first%20issue) These issues are for people who want to contribute, but try to work on a small feature first.
 81  * If you are an advanced developer, you can try to tackle [issues labelled feature requests](https://github.com/status-im/SPesa/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature+request%22). Beware though - they are harder to do and will require a lot of back and forth with the repository administrator in order to make sure we are going to the right direction with the product.
 82  
 83  We welcome contributions of all kinds from anyone.
 84  
 85  ## Principles, vision, goals
 86  
 87  Software are cultural artefacts, and as such I want to embed in them the ability to uphold [human rights](http://www.un.org/en/universal-declaration-human-rights/).
 88  
 89  ### Principles
 90  
 91  You can read [Status' Principles here](https://our.status.im/our-principles/).
 92  
 93  * Liberty
 94  * Censorship resistance
 95  * Security
 96  * Privacy
 97  * Transparency
 98  * Openness
 99  * Decentralization
100  * Inclusivity
101  * Continuance
102  * Resourcefulness
103  
104  ### Vision
105  
106  S-Pesa's vision is to provide people access to decentralised technologies as far as mobile networks reach, and connect them to the global (financial) markets
107  
108  ### Goals
109  
110  - TODO
111  
112  ### TODO
113  - handle USSD HTTP POST
114  - menu system
115  - pin-based registration system (key gen and encrypt with truncated hash of phone number and pin?)
116  - PoC Send/Receive
117  - MPESA Integration https://developer.safaricom.co.ke/docs#command-ids
118  - How to handle addresses that don't have pphone numers, make addresses first class citizen, with phone numbers attached (and have labelling)
119  
120  
121  ## License
122  
123  This software is released licensed under [MIT](/LICENSE-MIT) or [Apache 2.0](/LICENSE-APACHEv2).