@loremlabs/quadratic-funding
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

quadratic-funding

Version License: Kudos--MIT Twitter: loremlabs

Javascript library for calculating matching fund distribution using the quadratic funding (QF) algorithm.

Quadratic Funding

The way that this payment is calculated is as follows: for any given project, take the square root of each contributor's contribution, add these values together, and take the square of the result. - @VitalikButerin

Number of contributors matters more than amount funded.This pushes power to the edges, away from whales & other central power brokers.This creates more democracy in public goods funding decisions! 🦄 -WTF is Quadratic Funding

Quadratic Funding Resources

Install

npm install @loremlabs/quadratic-funding

Usage

When called, calculateQf will return an array of projects, each with a match property that is the amount of match funding that should be awarded to that project.

import { calculateQf } from "@loremlabs/quadratic-funding";

// pass in an array of projects, each with an identifier and an array of contributions
const projects = [
  {
    identifier: "kudos-for-code",
    match: 0,
    contributions: [
      {
        amount: 100,
      },
    ],
  },
  {
    identifier: "kudos-for-design",
    match: 0,
    contributions: [
      {
        amount: 100,
      },
      {
        amount: 100,
      },
    ],
  },
];

// set a matching amount
const matchingAmount = 100;

// calculate the match
const results = calculateQf(projects, matchingAmount);

// now results will include the match amount for each project
console.log(JSON.stringify(qf, null, 2));

Example

See the example directory for a simple example of how to use the library.

Run example

    node example/simple.js table

Should return:

Quadratic Funding
=================

Matching Amount: 100

┌──────────────────┬───────────────┬─────────────────────┬───────┬───────┐
│ Project          │ Contributions │ Contributions Total │ Match │ Total │
├──────────────────┼───────────────┼─────────────────────┼───────┼───────┤
│ kudos-for-code   │ 1             │ 100                 │ 20    │ 120   │
├──────────────────┼───────────────┼─────────────────────┼───────┼───────┤
│ kudos-for-design │ 2             │ 200                 │ 80    │ 280   │
└──────────────────┴───────────────┴─────────────────────┴───────┴───────┘

Run tests

Tests and coverage are run using Jest. To run the tests, run the following command:

npm run test

Author

👤 Matt Mankins / Lorem Labs

Show your support

Give a ⭐️ if this project helped you!

Package Sidebar

Install

npm i @loremlabs/quadratic-funding

Weekly Downloads

0

Version

0.0.5

License

Kudos-MIT

Unpacked Size

11.9 kB

Total Files

6

Last publish

Collaborators

  • mankins
  • sidvishnoi