/S-Pesa

Smart Pesa - a USSD/SMS Interface to Smart Contracts, #defi & Decentralised Applications

Primary LanguageNimApache License 2.0Apache-2.0

S-Pesa

Smart Pesa - a USSD/SMS Interface to Smart Contracts, #defi & Decentralised Applications.

(A Status Client for Feature Phones)

Smart Pesa is a USSD/SMS Interface to Smart Contracts, #defi & Decentralised Applications

Introduction

TODO

Purpose

To connect & enable anyone connected to a mobile network accesss to Smart Contracts, #defi & Decentralised Applications.

Features

  • Key Management
  • Multi-account Wallet
  • Access Smart Contract ABI
  • M-PESA Integration
  • DApplet Registry

Who is it for?

Anyone with a connection to a mobile network, predominantly focusing on those with feature phones in underserviced areas.

What S-Pesa isn't

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.

Where does this tool come from?

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.

Get started

nimble build && ./SPesa

Requirements

  • Nim 0.20.2 or above
  • Git
  • An Ethereum Node
  • Redis Server

Contribute

Do you want to help? That's awesome. Here are simple things you can do.

As a community

  • 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).
  • You can answer questions in the issue tracker to help other community members.

As a developer

  • Read our Contribution Guide.
  • Install the developer version locally so you can start contributing instructions.
  • Look for issues labelled bugs if you are looking to have an immediate impact on the project.
  • Look for issues labelled Help wanted These are issues that you can solve relatively easily.
  • Look for issues labelled Good first issue These issues are for people who want to contribute, but try to work on a small feature first.
  • If you are an advanced developer, you can try to tackle issues labelled feature requests. 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.

We welcome contributions of all kinds from anyone.

Principles, vision, goals

Software are cultural artefacts, and as such I want to embed in them the ability to uphold human rights.

Principles

You can read Status' Principles here.

  • Liberty
  • Censorship resistance
  • Security
  • Privacy
  • Transparency
  • Openness
  • Decentralization
  • Inclusivity
  • Continuance
  • Resourcefulness

Vision

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

Goals

  • TODO

TODO

  • handle USSD HTTP POST
  • menu system
  • pin-based registration system (key gen and encrypt with truncated hash of phone number and pin?)
  • PoC Send/Receive
  • MPESA Integration https://developer.safaricom.co.ke/docs#command-ids
  • How to handle addresses that don't have pphone numers, make addresses first class citizen, with phone numbers attached (and have labelling)

License

This software is released licensed under MIT or Apache 2.0.