PESA - On-ramp/off-ramp to crypto/local currencies for Polkadot
Project Overview 📄
PESA is a decentralized cross-chain mobile money protocol that enables anyone to buy, sell, send, receive, lend, borrow - crypto, and mobile money (i.e. tokenized minutes, data, WiFi) globally using a phone number.
The goal of this project is to make telecom and financial services open and accessible to all. Anyone with a mobile phone can utilize PESA to:
- Access carrier-independent voice, text, data & WiFi (mobile money)
- Send/receive crypto and mobile money to/from any phone number
- Buy/sell crypto and mobile money using a phone number
- Lend, borrow, crypto assets using a phone number
PESA is structured as a decentralized carrier and acts as a mobile money system. The traditional mobile money systems like m-pesa use phone numbers to uniquely identify users. Similarly, PESA uses tokenized phone numbers. A phone number is universal across chains and mapped to respective wallet addresses.
PESA aims to serve as an on-ramp/off-ramp to crypto/local currencies for the Polkadot users, applications, and developers. This is enabled by allowing users to purchase tokenized voice, text, data and WiFi credits using credit card, cryptocurrencies and eventually cash. To achieve this, we can either create our own Substrate-based blockchain or Parachain or work with Parachains like Plasm, Moonbeam, Acala, etc.
As a first step, we are proposing creating a pallet to perform Phone Number to Address resolution, reverse resolution, and execute transactions such as send & receive - crypto tokens, mobile money (i.e. tokenized minutes, data and WiFi) using phone numbers.
The goal of PESA pallet is to resolve the phone number to an address and allow the phone number to execute transactions - send, receive. It will be extensible to allow more functionality like lend & borrow, etc. Furthermore, it will be beneficial to dapps building financial systems (DeFi) including allowing unbanked users to onboard onto the system by just using a phone number.
Interface and Design
The PESA pallet will expose the following callable functions:
register - allows the user to register a Phone Number to its address
resolve - allows any user to resolve a Phone Number to an address
reverse_look_up - allows the user to look up Phone Number from an address. Provided the owner of the phone number/address opted to make it public.
transfer - allows the owner of the Phone Number/address to transfer ownership of the Phone number to another address.
send - allows the owner to send tokenized mobile money (i.e. mins, data and wifi) and other tokens built on the parachain(s) using the Phone Number
Mockups of PESA Dapp
Register Phone number with wallet address
Verify Phone number ownership
All web and mobile wallets like Airgap and Polkawallet can use PESA pallet to resolve phone numbers and access other pallet functions mentioned above. DeFi applications can also use the pallet to allow users to access financial services using a phone number.
- Suruchi Gupta (Founder & CEO)
- Jinesh Doshi (Engineering head)
- Leo Anbarasan M (Tech Lead/ Lead developer)
- https://wificoin.com (PESA website WIP)
Wificoin, a Delaware C corporation, 3165 Olin Ave, San Jose, CA 95117. We also have “Wificoin Foundation” incorporated in Panama.
The team has extensive experience building and shipping web, mobile apps, and DevOps tools. Suruchi and Jinesh are co-founders and both hold a Masters in Computer Science. Prior to founding Wificoin, Suruchi was a full stack developer and Tech Lead at Juniper Networks. Jinesh in his most recent role is a Senior Developer at Salesforce, building DevOps tools. Leo has been building web2 applications for the last 12+ years.
In the last year, Wificoin has built a pay-as-you-go, mobile-first carrier (a precursor to the decentralized carrier), that offers on-demand voice, text, data, and WiFi globally without needing to swap sim cards. Today, Wificoin users can access the internet on mobile via LTE eSIM in 45 countries (soon 113 countries), on the ground at 68M+ hotspots in 180 countries, on flights at 5000+ airplanes on 37 airlines (55% market penetration). In addition, users can call and text in 200 countries and get local phone numbers in US & Canada (soon 10 countries). Wificoin apps have been featured as a #1 Top grossing app in the Travel category several times. Over 11M credits (proxy for token) have been consumed by users.
The team has also integrated with Telecom operators like AT&T, Claro, etc.
Team Code Repos
No public repos to share yet.
Apps in App store & Play store:
Team LinkedIn Profiles
Development Roadmap 🔩
- Total Estimated Duration: 3 months
- Full-time equivalent (FTE): 3
- Total Costs: 2 BTC
Milestone 1 - Implement Substrate Pallet "PESA"
- Estimated Duration: 1.5 months
- FTE: 1.5
- Costs: 1 BTC
|1.||Substrate pallet: PESA||1. Pallet will expose a function called register to allow caller to register the phone number to their wallet address|
2. Pallet will allow users to perform Phone Number to address look up.
|3.||Unit tests||The code will have proper unit-test coverage to ensure functionality and robustness. Readme will provide details on how to run the tests.|
|4.||Dockerfile||Provide a docker image with a substrate node using our pallet.|
|5.||Documentation||We will provide both inline documentation of the code and a basic tutorial that explains how a user can interact with the substrate runtime to call the PESA pallet’s APIs.|
Milestone 2 — PESA pallet send, receive tokens using phone number and reverse lookup
- Estimated Duration: 1.5 months
- FTE: 1.5
- Costs: 1 BTC
|1.||PESA pallet - send, receive and reverse lookup functions||1. Pallet will allow users to send and receive tokens using phone number instead of using complex hash.|
2. Pallet will allow users to perform reverse resolution of address to Phone number if the users opted to allow during register operation.
|2.||Backend setup for Phone number verification||Backend will be in NodeJs to perform phone number verification/validation using Twilio.|
|3.||Demo of the above functionalities using a web dapp||Dapp showing these features.|
|4.||Dockerfile(s)||Provide a docker image with substrate node using our pallet. Docker image for backend.|
|5.||Unit Tests and Documentation||Provide documentation for:|
1. Steps to run the substrate node with PESA pallet.
2. Steps to use web dapp to interact with it.
3. Steps to run backend locally.
The tutorials and Documentation that we provide will be published as articles in Medium and other social media platforms with due mention about Web3 grant.
We also intend to engage community by providing grants in our tokens to add more support and improve our codebase.
Our goal is to make telecom and financial services open and accessible to all. So we plan to continually increase the services that can be accessed using phone numbers (for eg: lend, borrow), aiming to unlock access to advanced financial services for the unbanked as well.
Additional Information ➕
We are going to use this pallet for building a borderless mobile money system but anyone can extend it to support address resolution for other non-fungible tokens.