GoodDocs
Search…
Stake to create UBI
Instruction guide on how to stake supported tokens (DAI, USDC) to generate interest which will be used to support GoodDollar UBI generation and distribution.
GoodDollar leverages new protocols and smart contracts across the ecosystem to deliver a basic income in the form of G$, an ERC-20 digital asset built on the Ethereum blockchain that operates within the emerging realm of decentralized and open finance and is engineered to appreciate in value as its supply increases.
As a result of its ability to act as a wrapper of other protocols, GoodDollar is able to leverage yield farming and liquidity mining rewards to encourage capital to flow into the GoodDollar Reserve, where it enables sustainable minting of G$.
DeFi users who support the GoodDollar mission can make capital deposits in a third-party protocol they select via a collection of smart contracts called the GoodDollar Trust. They then instruct their chosen protocol to channel any returns into the GoodDollar Reserve to fund the generation of new G$. All G$ minted through this mechanism are either used to reward stakers or distributed as UBI to recipients on the Fuse blockchain, a low-cost L2 solution.

How does Staking for good work?

Supporters stake capital with these third-party protocols via the Trust. The interest generated by these deposits flows back to the GoodDollar Reserve, fueling the minting of new G$ tokens that are distributed each day to Claimers via the GoodDollar Wallet. Claimers must demonstrate they are real and unique before making their first G$ claim.
Since the creation of new supply is backed by the flow of funds into the GoodReserve, the G$ minted via this staking-to-UBI flow has zero impact on the token’s price.
We also have a fundamental belief that there are enough people who care not just about doing well for themselves, but about doing good for others. Among individuals and organizations alike, there is a large and growing appetite to invest in impact-driven initiatives that seek human and/or environmental wins alongside financial gains. While more than US$500 billion has been earned by institutions via impact investments, few such options are available to retail investors [31].

Initial Staking rewards

  • Compound DAI Total reward per block = 138.88 G$s | Yearly Reward = 291M G$s
  • AAVE USDC Total reward per block = 69.44 G$s | Yearly Reward = 145.5M G$s

Prerequisites

  1. 1.
    You should have a web3 wallet, (like MetaMask).
  2. 2.
    You should have enough ETH in your wallet in order to pay the gas fees of the transaction.
  3. 3.
    You should have enough balance of the currency you are using to stake with.
  4. 4.
    You should approve to the relevant staking contract enough allowance to use your balance in order to stake.
    1. 1.
      Go to the contract page of the staking contract, for example the GoodCompoundStaking (links in the references) and click on “Contract”:
    2. 2.
      Click on "Write Contract":
    3. 3.
      Connect your wallet by clicking on "Connect to Web3" and then choosing your wallet:
    4. 4.
      Click on "1. approve":
    5. 5.
      Fill in the spender address and the amount and click "Write" button:

Staking Interface

After you have done all the prerequisites, let's do the actual staking.
  1. 1.
    Go to the staking contact of your choice (either Compound or Aave, links to mainnet and couple test nets in the references).
  2. 2.
    Click on "Contract".
  3. 3.
    Click on "Write Contract".
  4. 4.
    Connect your wallet by clicking on "Connect to Web3" and then choosing your wallet.
  5. 5.
    Click on "13. stake", it will look like that (further explanation below the picture):
_amount Amount that you would like to stake
_donationPer Indicates if you would like to donate your staking rewards. Set 100 if you would like to donate your staking rewards, or 0 if you prefer not to.
_inInterestToken Indicates if you would like to stake in stake token or not, for example in the compound case with cToken or normal token.

Example

Staking with DAI

Let's assume you want to stake 100 DAI and you do not want to donate your rewards. Before the stake transaction, you would need to approve enough DAIs to the stake contract in order to allow it to transfer your funds.
Go to the related stake contract on etherscan.io
Connect your wallet by pressing the connect to web3 button
Now you can finalize your staking transaction:

Withdraw Interface

In order to withdraw, follow these steps:
  1. 1.
    Go to the staking contact of your choice (either Compound or Aave, links to mainnet and couple test nets in the references).
  2. 2.
    Click on "Contract".
  3. 3.
    Click on "Write Contract".
  4. 4.
    Connect your wallet by clicking on "Connect to Web3" and then choosing your wallet.
  5. 5.
    Click on "18. withdrawStake", it will look like that (further explanation below the picture):
_amount - Staked amount that we would like to withdraw.
_inInterestToken indicates if we would like to withdraw in interest token or normal token, for example in compound it is either cToken or normal token.

Example

Let's assume we staked 100DAI and we want to withdraw in cDAI.
  1. 1.
    Go to the staking contact of your choice (either Compound or Aave, links to mainnet and couple test nets in the references).
  2. 2.
    Click on "Contract".
  3. 3.
    Click on "Write Contract".
  4. 4.
    Connect your wallet by clicking on "Connect to Web3" and then choosing your wallet.
  5. 5.
    Click on "18. withdrawStake", it will look like that (further explanation below the picture):
  6. 6.
    Fill in 100dai in the amount (don't forget 18 decimals) and fill true in the inInterestToken field, it should look like the picture below.
  7. 7.
    Click "Write" button.

GovernanceStaking Interface

_amount Amount that you would like to stake

Example

In order to stake G$s to obtain governance tokens (GOOD), you will need to go GoodDollar ERC20's contract page on Fuse explorer and approve the amount you would like to stake.
Let's assume we would like to stake 100 G$s so we need to approve it first.
Then we can go to Governancestaking contract and finalize staking transaction.
In order to withdraw your GOOD governance tokens, you will need to go to the GovernanceStaking contract and use the 'withdrawRewards' function in order to withdraw your GOOD rewards without withdrawing your staked G$.

References

Last modified 30d ago