Election promises are the clickbait of democracy.

Political parties try to seduce voters with flashy promises that are too abstract and totally detached from reality. Those parties almost never fulfill their promises, as they have nothing at stake. Lack of public accountability create an incentive for over-promising and under-delivering, thus deteriorating the quality of our democracy. We the people need to make sure the parties are liable for their promises.

What it does

SmartPromises is a public accountability platform that allows a nation to incentivize its political parties to make S.M.A.R.T. promises, i.e. "Specific, Measurable, Achievable, Relevant and Timely".

The nation needs to escrow part of the party subsidies inside a smart contract that will only release the funds once the promises in each party's program are fulfilled.

The promises themselves consist in objective parameters like the unemployment rate, the quality of the air, the crime rate or the risk premium, so that they can be verified by the smart contracts under the hood. The payouts take place as soon as each of the promises is fulfilled.

If multiple parties include the same promises, they will all earn a share of the subsidy assigned to the specific promise. This create a strong incentive for the parties to stop confronting each other and rather seek consensus and cooperation for the common good, thus improving the democratic health of our society.

How we built it

This is a React app using the Aragon UI toolkit and Web3 to read from and write into an Ethereum smart contract.

The contract communicates with the Witnet Decentralized Oracle Network through a autonomous relay to retrieve the data needed to verify the fulfillment of the promises from public APIs in a decentralized and trustless way.

Challenges we ran into

  • Had to build a bridge between Ethereum and Witnet so the data could be retrieved trustlessly in a decentralized way.
  • Had to learn how to use the Aragon UI toolkit

Accomplishments that we're proud of

  • We worked as a truly united team
  • Made our best to adapt to the tight timeline
  • Employed Witnet for creating an impactful and useful use case
  • Had fun, learned a lot, made friends

What we learned

  • How to prioritize the most important features of a Solidity contract so it can be quickly prototyped
  • Testing contracts locally with Truffle and Ganache

What's next for SmartPromises

  • Integrating with a democracy Aragon Template that is managed by all the individuals in the nation.
  • Allow parties to identify themselves through independently verifiable uPort claims.
  • Adapt it so that it can be used by any kind of organizations that want to be publicly accountable (NGOs, companies, etc.)

Built With

Share this project: