/Pardna

Primary LanguageSolidityMIT LicenseMIT

PARDNA

A 'pardna' (colloquialized form of 'partner') as the name very loosely suggests, is a group or 'partner' based informal saving scheme ubiquitous in Jamaican communities. A pardna consists of a 'banker', the person who started the pardna and does the accounting, collection and safekeeping of all funds, and the members who pay or 'throw' a set amount at a given interval (typically weekly) then are given back all their money minus a 'banker's fee' in a 'draw' at the end of the pardna which can me anywhere from a few weeks to a year (or more).

Why save in a pardna anyway?

Pardnas have been a staple of Jamaican informal finance for geneations and they have to main draws.

  1. Saving in a group motivates members to adhere to saving goals, enforcing more accountability than they would saving alone.
  2. If the parnda you've joined allows you to take an 'early draw' where you get the expected balance you would have gotten at the end of the pardna duration up front, the member has essentially secured an informal interest-free loan.

Why the concept of a Parnda is perfect for 'dAppification'

Pardnas have an achilles heel that manifests as everything from rug pulls to unfairly high banker's fees and you may have noticed it. The current model of pardnas depends entirely on trust in someone else to responsibly manage your money. Oftentimes this trust is misplaced, this dApp is built in the form of a platform for creation and interaction with Pardnas.

What's different?

I've reinvented the idea of the banker, they never touch any funds and cannot charge any 'banker fees' and once they set the terms of the pardna at the beginning, those terms are immutable, just like the concept of a smart contract itself. Many small accounting gremlins that plague informal finance are also addressed such as a decentralized and automatic voting process to approve someone's early draw as opposed to a decision being made solely by the banker about money that really does not belong to them as well as automatically dismissing deliquent members and ensuring it is impossible for a mamber to over or under throw, this stipulation makes sure that every member has the same draw and every cent (or wei) is returned to its rightful owner in the end.

TODOS

  • Create a React frontend (App.js)
  • Create truffle tests for each function
  • Permanently solve CompilerError: Stack too deep, try removing local variables.
  • Set up deployment to Loom basechain (to save end users gas fees)
  • Migrate from ETH to a JMD-Pegged stablecoin (to provide a familiar face as a gateway to crypto for a population largely unaware of crypto)
  • Tidy up the all out dependence slight overuse of codeToPardna[_inviteCode].
  • General optimizations and housekeeping that would make it ready for production deployment which it is currently light years away from.
  • Employ the use of an oracle for true random number generation to make invite codes less deterministic
  • Use an oracle or eth alarm clock to run ThrowTracker() automatically