Smart Contracts

Smart Contract Architecture

GoodDollar will operate on Ethereum using smart contracts that are written in Solidity with G$ designated as an ERC20 token. As a means to an end, transactions using G$ are run on an Ethereum sidechain, Fuse, which enables low-cost, high-volume transactions. As we anticipate that the scalability and efficiency of blockchain infrastructure will continuously improve, the protocol is designed to be dynamic, flexible, and adaptable to evolve with market developments.

GoodStaking Smart Contract

The “accountant” of the GoodDollar economy, the GoodStaking smart contract ensures that the value flows as it intended, and transfers value to the correct place at the correct time. It performs the following functions:

  • Receives a Supporter’s principle to be staked in supported cryptocurrency

  • Sends the principle to the third-party protocol

  • Logs the amount of supported currency belonging to each Supporter

  • Receives the collateral token from the third-party protocol

  • Sends the interest in collateral token to the GoodReserve

  • Allows Supporters to redeem the principle staked

A typical staking transaction would involve sending supported currency to the GoodStaking smart contract, which automatically transfers the funds to the third-party protocol. The GoodStaking contract will create a log of the amount of supported currency that belongs to each Supporter. The interest earned will form the GoodReserve.

GoodReserve Smart Contract

Also referred to as the “reserve,” this is a smart contract containing market-valued supported cryptocurrencies. These cryptocurrencies can be swapped for G$ coins, thereby ensuring their value and liquidity. Users will also be able to receive G$ by depositing supported currency into the reserve. The GoodReserve will initially hold one type of supported currency, and in the future will hold additional supported currencies as per the decisions of the GoodDAO.

It performs the following functions:

  • Receives interest and deposits the supported currency after it accumulates a minimum sum to reduce gas fees, no more than once a day

  • In return for depositing interest in foreign currency, the GoodReserve sends the Supporter the interest rate equivalent in newly-minted G$ at the current exchange price.

  • Supporters can choose to keep, convert their G$, or donate a fraction of their G$ back to the pool distributed as daily basic income.


This smart contract receives the G$ that are minted from the GoodReserve. It allocates the G$ back to supporters and allocates G$ to be given out as basic income. All the monetary tools discussed above and that will exist in the future are controlled by the GoodDAO smart contract, such as the ability to change the expansion rate. This is where voting by way of the GoodDAO to adjust these monetary tools will occur.

UBI Scheme

This smart contract receives the daily amount of G$ that is set to be distributed to Claimers. The amount of basic income distributed each day is determined by the mechanism that governs the minting of G$. G$ coins are distributed as basic income and equally divided among all of the Claimers in one 24-hour period.

Key Components

Permissionless Protocols

A smart contract-based value generation mechanism operated by a third-party corporation in the field of decentralized finance, unrelated to GoodDollar. By leveraging the open smart contract infrastructure, the GoodStaking Smart Contract is connected to the permissionless third-party protocol and executes the functions as described above. There will be multiple third-party protocols that Supporters can select as their endpoint for accessing the GoodDollar economy, and users are subject to the terms of that protocol.

Reserve Ratio (r)

The Reserve Ratio (r) is the ratio between the value of the Supported Currency in the GoodReserve (R) to the value of the total G$ coins in circulation (market capitalization) (Equation 1).

Minting of G$

The GoodReserve mints G$ in two ways: the first is to mint according to new deposits in the reserve, and the second is according to the expansion rate. Every time interest is moved into the reserve, a certain number of G$ coins are printed to keep the price stable (Equation 5). Minting from the expansion rate is a reflection of the minting of tokens to stabilize the price according to the change in reserve ratio according to the annual expansion rate (Equation 4).

Official G$ Price

The price of one 1 G$ in supported currency. GoodDollar is a reserve-based token and the GoodReserve functions as an automated market maker according to the Bancor formula (Equation 2). The GoodReserve uses this price to calculate the amount of G$ coins allocated to Supporters as interest, and adjusts the price when supported currency is bought or sold to/from the GoodReserve. The formula has the properties of raising the price when G$ is being bought from the reserve, and lowering the price when G$ is being sold back to the reserve.


G$ can be sent and received to and from ERC20-compatible Ethereum wallets. This feature enables G$ to be used as a means of payment and creates more use cases and thus utility for G$.


A user can send their G$ to the GoodReserve smart contract and receive the supported currency in exchange. Alternatively, they can send supported currency to the GoodReserve smart contract and receive G$.


The question of secure and unique identity is critical to GoodDollar’s system succeeding and in preventing abuse by malicious actors. Fraudulent activity jeopardises the economy’s integrity. Since GoodDollar distributes free G$, we must verify that each user can sign up only once. Secure digital identification has been considered key to achieving financial inclusion. The simple option is to use government identification or a traditional “know your customer” process, but this is not practical if we are trying to reach the 1.7 billion people living unbanked without access to traditional financial services.

To overcome this challenge and accelerate adoption, GoodDollar has built and launched the GoodDollar Wallet – the initial destination for Claimers to sign up and claim G$ – with a built-in identity verification process. The app utilizes Facetec’s ZoOm 3D to conduct facial verification and video capturing in order to ensure that a person is unique and alive. We believe that in the near future there will be multiple access and endpoints with embedded identity solutions through which users can claim G$ coins.

[39] ERC-20 Token Standard, November 2019 [40] Ross, O. and Jensen, J.R., Policy Formation Without Authority, June 2020 [42] White, O., Madgavkar, A., Manyika, J., Mahajan, D., Bughin, J., McCarthy, M., Sperling, O., Digital Identification: A Key to Inclusive Growth, January 2019 [41] Bancor Protocol, March 2018.