Skip to content

[🏆 Top 30 at nwHacks 2018, SAP iXP Prize] PacketBook SMS financial inclusion platform powered by the Stellar Blockchain

Notifications You must be signed in to change notification settings

jackyzha0/PacketBook

Repository files navigation

Submission for NWHacks2018

https://devpost.com/software/packetbook

Placed in the top 30 winning us the SAP iXp - "Hey SAP, I Got Your Hack" and The Wolfram Award prizes.

The Problem

Around two billion of the world's adult population is considered unbanked, meaning that they do not have access to a "transaction account" - a bank account or e-wallet that can send, receive and store money. Many unbanked people live in rural, marginalized communities in the developing world, without access to newer technologies. Fortunately, mobile phone penetration in the developing world is quite high, at over 80%; however, most of these phones are not smartphones, and they lack the capabilities to run modern apps or connect to the internet.

Our solution

Our solution is a chatbot, fully accessible through the SMS (text messaging) protocol. Users are able to issue simple commands to register, check their balance, deposit, withdraw, and send money. PacketBook is unique in that it leverages the Stellar blockchain and tokens (XLM) for its transactions. Stellar is currently the eighth largest cryptocurrency, with a market cap of over $10B, and has gained support from Patrick Collison (CEO of Stripe), Sam Altman (President of Y-Combinator), and IBM. Stellar also has extremely low transaction fees (around 1/100 of a cent per transaction), making it the perfect choice for a microfinance project.

The application is perfectly usable on the Stellar main network, but is currently deployed to the testnet. All new registrations receive 10000 (fake) XLM that they can transact through the chatbots.

The testnet blockchain is viewable online. Here is a link to one of the addresses we used for testing: http://testnet.stellarchain.io/address/GCPTH5W3Q7MES3GRQTJGLW7OMKFBFBXMELKN7GJX24FJV4IB7DL2QBUY

How we built it

As it stands right now, our project is a bit of a hodgepodge. The majority of PacketBook is written in Node.js and deployed on Stdlib. We're using Twilio to hand messaging and calls. We also have some Python code on a Heroku dyno that handles authentication. In addition, we use a Mongo database running online to handle the few bits of user data that are collected (mainly phone #'s and crypto keys).

Challenges we ran into

Our biggest challenge by far was authentication. Because our product needed to be accessible entirely by text messages, there weren't many options to make our bot secure. We couldn't implement things such as 2FA because our target users don't really have any other "factors" for authentication. Some other major hurdles that we passed were language support in many of the libraries we used--especially since we used a fusion of JS and Python.

Accomplishments that we're proud of

We're pretty proud of just having a working product that solves a real-world need. This was our first hackathon so we didn't really know what to expect, but we're glad to be able to show off something that we finished and are proud of.

What we learned

We decided on using a phone-call verification method that involes keeping and memorizing a 6-digit 'key' or 'password'. In addition, we created dummy encryption methods for the on-site resources such as Twilio login, and stronger encryption methods such as AES-256-CTR for transactions. Both which were new technologies for us.

What's next for PacketBook

Add support for currency exchange

Clean up the code

Google DialogFlow Implementation

Expand Twilio platform to support more users

Check it out for yourself!

Find us to get placed on the whitelist then text 'Hi' to +1 604 670 8545 *May or may not work depending on how many registered devices

About

[🏆 Top 30 at nwHacks 2018, SAP iXP Prize] PacketBook SMS financial inclusion platform powered by the Stellar Blockchain

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published