7.1 Negative Balances & CIP36

Traditional trade or IOU systems typically allow for a 1 to 1 trade where each side of the transaction must agree that their goods or services are of equal value to the other party's goods or services and if so the transaction can take place.

Examples of this include Facebook marketplace, Craigslist, Offerup, etc. - traditional peer to peer marketplaces. Mutual credit only requires one party to agree that the purchase of a good or service is less than or equal in value to the amount of work done in the network required to payback the purchase.

The selling party can then take the proceeds of the sale and form the same conclusion with any other participant in the network. In order to keep a record of each individual's balance within the network we need a unit of account that could accommodate a negative balance. Traditionally, account balances in decentralized systems only maintained positive balances, thus we created RSD and CIP36

At the core of the protocol lies CIP36 (Celo Improvement Plan) which is a fungible token standard designed to implement and abide by the ERC20 standard but behave like a mutual credit currency.

The key differences in CIP36 vs. ERC20 are:

  • The total supply of a CIP36 token is equal to the total amount of outstanding debt on the network. Therefore, the total supply will expand and contract as credit is utilized, but will never exceed the total amount of credit issued.

  • CIP36 has a list of members - represented as addresses/accounts. Members are assigned a credit line by a party assuming responsibility for overall network solvency (the "issuer").

  • Accounts with a credit line may spend into being some amount of the mutual credit currency (e.g., RSD) to other wallets/accounts that are within the particular network.

  • When an account having a negative balance receives a payment, the credit balance is repaid for that amount. If it is fully repaid, the balance rises into the positive.

  • Both positive and credit balances implement the ERC20 specification and may be transferred at will. The only stipulation with the credit balance is that it does not exceed the members defined credit limit such that a member with a credit limit of R$100 cannot send another member R$150 unless they have a positive balance of at least R$50.

Example:

  1. There are two accounts - A & B.

  2. Account A has a positive balance of R$500 with a credit limit of R$1000.

  3. Account B has a negative balance of R$500 with a credit limit of R$1000.

  4. Account A transfers R$1500 to account B.

  5. This consists of a $R500 RSD token burn and a $R1000 RSD token transfer

  6. Account A now has a negative R$1000 and can spend a total of R$0

  7. Account B now has a positive R$1500 and can spend a total of R$2500

Last updated