SLP voting address
simpleledger:pqqjlxx4g7qxzlnj0dqk02g8me55vggcygjpfmfkx8
Thank you for your support!
Built for the CoinParty hackathon, GeoDrop brings us a step closer to the PurelyPeer economy!
Inspiration
In an era, when we are overloaded with information from all directions, we need a way to be rewarded for our attention. Recall that excitement when you find dropped cash on the street? You are happy to open your wallet, which is a rare exception. What if you knew who made the cashdrop?
Our PurelyPeer game and wallet replicates that joyful experience by merging collectibles from the digital world with the real world, claiming collectible tokens based on one's location, similar to Pokemon Go. This allows businesses to advertise and engage customers through tokens dropped at physical locations.
Eventually, PurelyPeer will have in-game interactions, a collectibles library, marketplace, messaging, and more.
Through the engaging geolocation game and extremely affordable advertising, we increase merchant revenues, and merchant adoption of the decentralized Bitcoin Cash cryptocurrency. We add important onboarding ramps to build a purely peer-to-peer economy. We answer common questions like:
How can I get some Bitcoin Cash? - Play the geolocation game!
Where can I spend it? - At your local business!
What do I use it for? - Tips, coffee, whatever they offer!
What do they use it for? - More advertising that rewards!
What it does
Awesome! Did we indeed build a PurelyPeer economy in just 6 days, during the CoinParty hackathon?
Not without more work. And not without you! During the hackathon, we focused on a technical proof of concept: a map-based scavenger-hunt game, used to promote merchant adoption of Bitcoin Cash and SLP tokens.
We have managed to develop and release a working game prototype that attaches economic value to specific locations. Check out GeoDrop.cash and experience the main 3 user interfaces.
An Explorer allows you to browse merchants in your area, some of who might still have active campaigns that reward you. Active campaigns include cashdrops in hidden locations. After all cashdrops are claimed, campaigns become inactive.
A Cashdrop is for anyone who would like to advertise or simply create a treasure hunt in specific locations. After selecting where you want to place your cashdrops, you pay to a QR code from a Bitcoin Cash wallet of your choice.
GeoDrop doubles as a Bitcoin Cash wallet and you may use your balance for anything.
And finally, to Play GeoDrop, your location is periodically refreshed and you receive hints to find the cashdrops. After getting close enough to a hidden location, you claim the cashdrop to your GeoDrop wallet. If this is your first game, your GeoDrop wallet gets created automatically. But don’t forget to backup your 12 word seed!
Seriously, do back it up! Or you will lose your funds forever!
User Stories
User Stories is a concept in the Agile management model for software development. Below are some of the user stories that we started with, to guide the development of the GeoDrop game.
As a merchant (e.g. store), I want to drop tokens onto a map, in order to advertise and promote my store, for instance a coffee shop.
As a merchant (e.g. online business, content creator), I want to drop tokens onto a map, in order to advertise and promote my online content.
As a user (e.g. anyone with a wallet), I want to experience the joy of stumbling across dropped cash on a street and picking it up, as often as possible.
As a user (e.g. gamer, collector), I want to hunt tokens in my neighborhood, for fun and possible profit.
As a user (e.g. gamer, collector), I want the PurelyPeer app to tell me what direction I should go for unclaimed tokens, so that I do not get frustrated and quit.
As a user (e.g. BCH spender, customer), I want to see a directory that identifies merchants who are a part of the BCH economy, having paid for the listing with BCH.
As a user (e.g. BCH donor, customer), I want to increase BCH adoption in my local area and prepay a few drinks at my favourite coffee shop, so that those who discover the tokens can be rewarded with some BCH, drinks, and the pleasant experience at my go-to store.
As a BCH app developer, I want to get more people and businesses exposed to using BCH, incentivizing them to enter and remain within a closed loop BCH ecosystem.
As a BCH app developer, I want to get more developers excited about possibilities within our ecosystem and ignite them to build novel applications.
As a BCH app developer and a parent, I want to incentivize systemic creation of the PurelyPeer economy for future generations.
How we built it
To build the game, we started with the open source tools listed below. The main challenge in the hackathon was creating the code around the game-logic, getting all the tools below to work together, and doing it all within the hackathon time-frame, to produce the final product.
- Bch-wallet-starter for the web-wallet front-end.
- Koa-api-boilerplate for the REST API server back-end.
- Bch-js for the BCH and SLP handling on the server.
- Leaflet for the maps used in the web app.
- Capacitor for compiling the Gatsby web app into an Android app.
The game architecture is composed of an app and a server. The server hosts a REST API to allow the app to communicate with it. The app is for merchants to create campaigns with cashdrops, and also for gamers to play GeoDrop.cash and collect tokens. The architecture of the app follows the Cash Stack model for building apps that interact with the BCH blockchain.
Server features
- Koa-api-boilerplate is a node.js JavaScript REST API server that uses koa (the successor of Express.js) and MongoDB. It has battle-tested code for basic features like user accounts and authentication, logging, and extensive testing. Trout has used this boilerplate to start several products.
- Generates NFT tokens.
- Generates a wallet for holding tokens and ‘cash drops’ of BCH.
- Transfers tokens and cash drops to users when they meet the geographic requirements.
- Sweeps unused funds from expired campaigns and sends it to eatBCH.org.
App features, Merchant side
- UI for selecting a point on the map and placing pins to represent cashdrops.
- UI to pay for token creation.
- UI to pay for cash drops.
- UI to create tokens.
App features, Gamer side
- Show a list of participating merchants on the map.
- Shows gamers location on the map, and is periodically updated.
- Gives gamer tips on direction and how close they are.
- Detects ‘collision’ when a user approaches a cashdrop.
- ‘Collect’ button is enabled when the user is close enough.
- Collecting a drop transfers the token from the server to the gamers wallet.
Challenges we ran into
Narrowing down the scope. We distilled our goals to what we thought we could reasonably accomplish within the time-frame of the hackathon. We transitioned from the realm of possibilities to the realm of possible.
Global team coordination. With 4 of us in 3 different time zones and representing 5 different continents in terms of background and experience, we learned to collaborate as if we sat in the same room. Will we ever meet one day in person too?
Broadband and connectivity. Living in urban as well as rural areas, our connection was not always stable and we had to prioritize data and information transfer. Starting with daily coordination video calls, we eventually switched to voice only, to reduce bandwidth. We also worked hard to keep our final application as small as possible, thus yielding it suitable for rural areas with limited connectivity too.
Google Maps API. Did you know that developers in Venezuela cannot even use paid Google Maps API? We did not. But we do now. One of our developers is based in Venezuela and he had troubles connecting to our existing account credentials that we wanted to use. Hence, we had to look for alternative APIs and use open-source Leaflet instead.
Location refresh, precision in rural areas. We are aware that in the current implementation, GeoDrop.cash works very well in urban areas with more network nodes that triangulate more precise location updates. In rural areas though, our game does not provide as swift location updates as we would desire. Hence, the next step would be to integrate GPS readings specific to various mobile-devices.
Accomplishments that we are proud of
We did it! We got a playable game in time for the hackathon deadline!
We managed to build a web-based application built on the backbones of BCH infrastructure. It is usable but we felt like a dedicated app would provide a better UX/UI. Hence, we also created a usable Android application. Neither of us has built an Android app before so that is quite something!
We showcased BCH and SLP capabilities and features that keep us excited:
- Fun! Fun! Fun! - Collectibles via a geolocation game, GeoDrop.cash.
- Practical. - Nearly free to transact, reliable BCH transactions with sub-cent fees.
- Programmable. - Customizable through OP_RETURN and SLP.
- Extensible. - Easy development over existing fullstack framework such as FullStack.cash.
GitHub: https://github.com/GeoDrop-cash
APK download: see the ‘About’ section of the WebApp at https://geodrop.cash
YouTube presentation: https://youtu.be/EebCfWu-hpU
What we learned
- How to work with Leaflet map API.
- How to get GPS coordinates in a web app.
- How to tag a geographic coordinate with an SLP token.
- How to generate an Android app from a Gatsby web app.
- How to collaborate as a team across time zones and continents.
What is next for PurelyPeer | GeoDrop.cash
Since cashdrops create a listing in the GeoDrop explorer, we provide the means to close one loop of the PurelyPeer economy.
Hey, did you just get rewarded from a nearby coffee shop? Are you thirsty?
Well then, go to say hi and consider paying or tipping them in Bitcoin Cash.
Having created the campaign that rewarded you, the coffee shop can use Bitcoin Cash to create more campaigns and attract more customers.
So go out there, explore and have fun! Promote your business for pennies!
A small portion of your campaign cost is used for sub-penny, Bitcoin Cash transaction fees. The rest of BCH is forwarded to eatBCH.org, helping to feed multiple communities around the world.
GeoDrop.cash will stay online as a proof of concept for testing, inspiration, and basic geocaching game features.
Reach out to be@purelypeer.cash to keep the PurelyPeer conversation going. Ideally, PurelyPeer will become an exciting AR-based scavenger hunt, and a go-to hub for BCH-related interactions.
CoinParty awards BCH address
bitcoincash:pqqjlxx4g7qxzlnj0dqk02g8me55vggcyg76zqukce
PurelyPeer future features development BCH fund
Thank you for willing to support the PurelyPeer economy. Before donating to the PurelyPeer fund, please go out and play GeoDrop.Cash as much as possible so that more people become familiar with BCH and more communities are supported through eatBCH.org.
But in case that you cannot wait for PurelyPeer to grow as quickly as possible, here you go:
bitcoincash:qp4erahp7h8enmmu9m40n8vwgy7nyr762u4krrllfr
Built With
- bch
- bch-js
- bitcoin-cash-bch
- blockchain
- creativity
- endurance
- fintech
- fullstack.cash
- grit
- innovation
- javascript
- lack-of-sleep
- slp
- teamwork
Log in or sign up for Devpost to join the conversation.