GoodDollar is a non-profit digital coin created to serve the many and not just the few, by giving everyone who joins a small daily income in the form of UBI. To elevate the poor out of poverty and into financial freedom. To create new trade, new marketplaces, new entrepreneurs, new jobs, new economic growth, new business, for everyone.ˇ
Our society is on the cusp of a financial revolution, at the tipping point of a massive change. Blockchain technology and cryptocurrencies have provided us with an alternative to outdated financial institutions like banks and credit companies but the solutions are not yet complete and the future is still being determined.
We are seeking programmers to propose and create impactful solutions based on the GoodDollar ERC20 Protocol as part of Consensys for Social Impact Global hackathon. The winners will be announced just in time for the first Ethereal conference outside of the US, in the lovely coastal city of Tel Aviv.
Together we now have the means to form our own financial frameworks, decentralized ones, that can be programmed to serve common human interests rather than corporate ones.
Here’s Yoni Assia, Presenting a 15m vision of GoodDollar - Here
The Impact of UBI - Now let's solve this globally - Here
Submission Requirements
Code should be well documented
A working example should be deployed
Address the technical requirements and include explanations of how they have been implemented, with code references.
Submit your repo(s) with a README file explaining how to deploy your solution
GoodDollar extensions/modifications should be forked from the relevant repo and submitted as a PR
Submission Deadline
11:59pm Eastern on September 11th
Judging Criteria
The winner/winners will be chosen accordingly to the feasibility of the implementation of their solution.
Winner Announcement Date
We will review the submissions on a rolling basis upon submission. Winners will be notified at the end of the hackathon.
Implement an SDK and extend GoodDAPP to enable "Login with GoodDollar".
Every GoodDollar member has a verified "unique and live" self-sovereign identity (profile).
Profile details are stored encrypted with the user private key over gundb using gun encryption and user management library SEA.
You should implement a system that would enable a 3rd party to request the user details in order for him to login to that 3rd party website/service.
Use case: A Work Marketplace enables its users to login with GoodDollar. The Marketplace, which is trying to reach more people, will implement a sign-in with GoodDollar account in order to speed up user onboarding, and let a registered GoodDollar community member to fill in their details in a click of a button to start receiving remittance for work, received by the site provider, into their GoodDollar wallet.
An example flow:
user clicks on a "Login with GoodDollar" button
A QR code and/or a link is displayed to the user
The user scans the QR code with his GoodDAPP
The user sees the request details, the requester details and what details does the requester require
The user then chooses which data to share
GoodDAPP sends the data to the requester
Technical Requirements
Javascript snippet for generating the Login button and QR/Link
QR/Link should include the 3rd party GoodDollar account wallet address/gundb profile
When an account is whitelisted his blockchain address+profile public key are saved to the identity smart contract
login request website/details were signed by the requester profile public key. If link was used its possible to compare the referer website to the details
GoodDAPP shows user a modal asking which details to send
The requester details are shown
The request specific details are shown
wallet address, profile public key, full name, image, username are always sent
email/mobile are optional and can be enabled/disabled by the user
GoodDAPP needs to prove to requester he's the owner of the profile public key
need some kind of handshake between requester server and GoodDAPP. maybe server sends a nonce that GoodDAPP signs with public key
Communication can be done via regular https end points or via gundb (websockets based)
requester server redirects user
in order for requester page showing QR to refresh, there probably should be a unique identifier generated by the server that is also
send via the QR. this identifier could be the unique channel over gundb that they communicate over. in any case communication should be
encrypted with public keys.
The QR page could be also listening on that gundb channel to know when user was logged in
optional: requester is added with permissions to read the user profile fields that were enabled using SEA .grant method
requester can always be updated when details change
requester doesnt need to keep any data at all since he can always access the details
user can revoke access
GoodDAO
GoodDollar is a community by the people for the people. It offers a model for managing the monetary policy based on its members voting.
The ask: Implement curation markets using DAOStack's tools and holographic consensus.
The GoodDollar members (DAO) would need to make different decisions and also manage common pool resources.
-Map governance needs for a community-driven to run
-Implement a proposal and voting mechanic which users could participate on.
-The GoodFeed - the feed every user sees when he opens his wallet, this a scarce and valuable resource for passing information to the members of GoodDollar. How would the members decide which news and announcements are worthy to be displayed to everyone?
Technical Requirements
GoodDollar should be the token for staking
A script to deploy the smart contracts from DAOStack you've used with the GoodDollar the staking token.
Choose a topic for curation, could be one of the two examples above or anything else you think might be important
UI for one of or all:
submitting proposals, preferably through the GoodDAPP
voting on proposals, preferably through the GoodDAPP
staking on proposals, preferably through the GoodDAPP
list of winning proposals in GoodDAPP
GoodDonations:
Build an extension to the GoodDollar usage cloud - This could be a seperate Marketplace site, to bring community members together, in order to faciliate direct / pool base donation schemes between people:
**GoodBusiness → A mechanic for Any entrepreneur or business to attract GD users community.
Stake yourself or ask to finance your business growth to your customers (Buy GD)
Accept GD as a mean to unlock fiat finance for GDs (Sell GD)
GoodFund → Donate to a pool of resources managed by DAO
GoodPeeps → Stake a person with monthly UBI
GoodCommunity →** A mechanic for GD users community to
Ask crowed to finance their community by onboarding multiple businesses (Buy GD)
Accept GD as a mean to unlock fiat finance for GDs (Sell GD)
GoodReserve
Implement the reserve smart contract. The reserve has three main functions
Accept donations in Ether (or other ERC20 tokens)
Sell/Buy GoodDollars for Ether using bonding curves
Manage the foreign currency reserves for the benefit of the GoodDollar members
Technical Requirements
Read our economic paper draft, specifically chapter 5.
Implement a smart contract with the above 3 main functionalities and key things in mind
How would you try to prevent GoodDollar from being a speculative currency through market making?
GDX, a token that can give access to the reserve, not everyone can exchange their GoodDollars
Citizen Dividend - When can you give GDX as a dividend part of the UBI
Extend GoodDAPP with a UI for interacting with one or more of the reserve contracts functionalities
First Prize
Prize Bounty
$1000
Challenge Description
GoodDollar is a non-profit digital coin created to serve the many and not just the few, by giving everyone who joins a small daily income in the form of UBI. To elevate the poor out of poverty and into financial freedom. To create new trade, new marketplaces, new entrepreneurs, new jobs, new economic growth, new business, for everyone.ˇ
Our society is on the cusp of a financial revolution, at the tipping point of a massive change. Blockchain technology and cryptocurrencies have provided us with an alternative to outdated financial institutions like banks and credit companies but the solutions are not yet complete and the future is still being determined.
We are seeking programmers to propose and create impactful solutions based on the GoodDollar ERC20 Protocol as part of Consensys for Social Impact Global hackathon. The winners will be announced just in time for the first Ethereal conference outside of the US, in the lovely coastal city of Tel Aviv.
Together we now have the means to form our own financial frameworks, decentralized ones, that can be programmed to serve common human interests rather than corporate ones.
Here’s Yoni Assia, Presenting a 15m vision of GoodDollar - Here
The Impact of UBI - Now let's solve this globally - Here
Submission Requirements
Submission Deadline
11:59pm Eastern on September 11th
Judging Criteria
The winner/winners will be chosen accordingly to the feasibility of the implementation of their solution.
Winner Announcement Date
We will review the submissions on a rolling basis upon submission. Winners will be notified at the end of the hackathon.
Basics
Developer Resources
Docs & Guides
Dev chat
Quick start dev env Installs and setup the repos GoodDAPP, GoodServer, GoodContracts and GoodGun
GunDB/GunDB chat
Challenges
GoodReserve
GoodIdentity
Implement an SDK and extend GoodDAPP to enable "Login with GoodDollar". Every GoodDollar member has a verified "unique and live" self-sovereign identity (profile). Profile details are stored encrypted with the user private key over gundb using gun encryption and user management library SEA. You should implement a system that would enable a 3rd party to request the user details in order for him to login to that 3rd party website/service.
Use case: A Work Marketplace enables its users to login with GoodDollar. The Marketplace, which is trying to reach more people, will implement a sign-in with GoodDollar account in order to speed up user onboarding, and let a registered GoodDollar community member to fill in their details in a click of a button to start receiving remittance for work, received by the site provider, into their GoodDollar wallet.
An example flow:
Technical Requirements
GoodDAPP verifies details from link/QR GoodDAPP QR usage
GoodDAO
GoodDollar is a community by the people for the people. It offers a model for managing the monetary policy based on its members voting.
The ask: Implement curation markets using DAOStack's tools and holographic consensus. The GoodDollar members (DAO) would need to make different decisions and also manage common pool resources.
-Map governance needs for a community-driven to run -Implement a proposal and voting mechanic which users could participate on. -The GoodFeed - the feed every user sees when he opens his wallet, this a scarce and valuable resource for passing information to the members of GoodDollar. How would the members decide which news and announcements are worthy to be displayed to everyone?
Technical Requirements
GoodDollar should be the token for staking
GoodDonations:
Build an extension to the GoodDollar usage cloud - This could be a seperate Marketplace site, to bring community members together, in order to faciliate direct / pool base donation schemes between people:
**GoodBusiness → A mechanic for Any entrepreneur or business to attract GD users community. Stake yourself or ask to finance your business growth to your customers (Buy GD) Accept GD as a mean to unlock fiat finance for GDs (Sell GD) GoodFund → Donate to a pool of resources managed by DAO GoodPeeps → Stake a person with monthly UBI GoodCommunity →** A mechanic for GD users community to Ask crowed to finance their community by onboarding multiple businesses (Buy GD) Accept GD as a mean to unlock fiat finance for GDs (Sell GD)
GoodReserve
Implement the reserve smart contract. The reserve has three main functions
Manage the foreign currency reserves for the benefit of the GoodDollar members
Technical Requirements