# Previous Protocol Versions

- [Protocol V1](https://docs.gooddollar.org/previous-protocol-versions/smart-contracts-guide.md): An introduction to the key components and members in the GoodDollar protocol V1.
- [Architecture & Value Flow](https://docs.gooddollar.org/previous-protocol-versions/smart-contracts-guide/architecture-and-value-flow.md): This page provides an overview of the GoodDollar smart contracts architecture and value flow within the system.
- [Core Contracts & API](https://docs.gooddollar.org/previous-protocol-versions/smart-contracts-guide/core-contracts-and-api.md): This page provides contract addresses for key components of GoodDollar protocol.
- [Protocol V2](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2.md): GoodDollar V2 refers to GoodDollar protocol smart contracts deployed in December 2021. PAY ATTENTION to confirm you are interacting with the correct and most current version of the smart contracts.
- [Architecture & Value Flow](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/architecture-and-value-flow.md): This page provides an overview of the GoodDollar V2 smart contracts architecture and value flow within the system.
- [System's Elements](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements.md)
- [1. The token (G$)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/1.-the-token-gusd.md)
- [2. The Reserve](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/2.-the-reserve.md)
- [3. The Trust](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/3.-the-trust.md)
- [4. Staking rewards (APR)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/4.-staking-rewards-apr.md)
- [5. The Fund Manager](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/5.-the-fund-manager.md)
- [6. The Distribution Contract (DisCo)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/6.-the-distribution-contract-disco.md)
- [7. Governance (DAO)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/systems-elements/7.-governance-dao.md)
- [Core Contracts & API](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api.md)
- [GoodDollar](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/gooddollar.md): The GoodDollar G$ token follows the ERC-20 token standard and also supports ERC-677.
- [GoodCompoundStaking V2 (DAI)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/goodcompoundstaking-v2-dai.md): Supporters / stakers can stake their DAI which is sent to permissionless protocols which earn interest. The FundManager has permissions to collect interest-earned from this contract.
- [GoodAaveStaking V2 (USDC)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/goodaavestaking-v2-usdc.md): Supporters / stakers can stake their USDC which is sent to permissionless protocols which earn interest. The FundManager has permissions to collect interest-earned from this contract.
- [GoodReserveCDai](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/goodreservecdai.md): The GoodReserveCDai mints G$ based on the interest transferred from the FundManager. Only the FundManager can trigger minting.
- [GoodFundManager](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/goodfundmanager.md): Has permissions to collect interest from the staking contracts and permissions to tell GoodMarketMaker to mint. Anyone can trigger the collection and minting process.
- [GoodMarketMaker](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/goodmarketmaker.md): Helper contract for the GoodReserveCDai. It serves as a dynamic reserve ratio market maker.
- [ContributionCalculation](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/contributioncalculation.md): Helper contract for calculating the exit contribution (i.e. when selling G$ back to the reserve).
- [UBIScheme](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/ubischeme.md): Holds all the G$s that were transferred via bridge from the FundManager.
- [Identity](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/identity.md): The Identity contract controls addresses that are whitelisted to "Claim" UBI.
- [FirstClaimPool](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/firstclaimpool.md): Helper contract for UBIScheme. Manually funded by the Foundation to give 1G$ for "inactive" users when they claim.
- [AdminWallet](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/adminwallet.md): Helper contract for our backend servers to whitelist users and to fill their Fuse network gas.
- [OneTimePayments](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/onetimepayments.md): Payments on the GoodDollar wallet are done via payment links.
- [DonationsStaking](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/donationsstaking.md): Any ETH/DAI sent to this contract address is donated to the GoodDollar DAO and will generate interest to fund UBI.
- [NameService](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/nameservice.md): Helper contract, basically simple name to address resolver.
- [GReputation](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/greputation.md): The contract extends Reputation contract with delegation and cross blockchain merkle states.
- [CompoundVotingMachine](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/compoundvotingmachine.md): CompoundVotingMachine based on Compound's governance with a few differences.
- [StakersDistribution](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/stakersdistribution.md): Staking contracts will update this contract with staker token stake amount.
- [UniswapV2SwapHelper](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/uniswapv2swaphelper.md): The utilitary library which is helping to perform swaps in Uniswap V2.
- [Invites](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/invites.md): The contract that handles invites with pre allocated bounty pool with invitee bonus.
- [GovernanceStaking](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/governancestaking.md): This is the staking contract that allows citizens to stake G$ to get GOOD rewards.
- [ClaimersDistribution](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/claimersdistribution.md): The contract provides callbacks that can be used by UBIScheme contract to update when a citizen has claimed. It will distribute GOOD tokens each month pro rata based on number of claims.
- [CompoundStakingFactory](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/compoundstakingfactory.md): The staking contract that donates earned interest to the DAO.
- [AaveStakingFactory](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/aavestakingfactory.md): The staking contracts factory. Producing contracts donate earned interest to the DAO allowing stakers to deposit or withdraw their stake.
- [ExchangeHelper](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/exchangehelper.md): Helper contract to buy/sell G$ at GoodReserve with any token supported by Uniswap V2. Since reserve only supports cDAI.
- [FuseFaucet](https://docs.gooddollar.org/previous-protocol-versions/protocol-v2/core-contracts-and-api/fusefaucet.md): The contract is to provide functionality of topping the users with Fuse to pay transaction fees.
- [Protocol V3](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3.md): An introduction to the key components and users in the GoodDollar protocol V3. This is the current version of the GoodDollar smart contracts.
- [Architecture & Value Flow](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/architecture-and-value-flow.md): How does the protocol works?
- [System's Elements](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/systems-elements.md)
- [Core Contracts & API](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api.md)
- [GoodDollar](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/gooddollar.md): The GoodDollar G$ token follows the ERC-20 token standard and also supports ERC-677.
- [GoodCompoundStaking V2 (DAI)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/goodcompoundstaking-v2-dai.md): Supporters / stakers can stake their DAI which is sent to permissionless protocols which earn interest. The FundManager has permissions to collect interest-earned from this contract.
- [GoodAaveStaking V2 (USDC)](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/goodaavestaking-v2-usdc.md): Supporters / stakers can stake their USDC which is sent to permissionless protocols which earn interest. The FundManager has permissions to collect interest-earned from this contract.
- [GoodReserveCDai](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/goodreservecdai.md): The GoodReserveCDai mints G$ based on the interest transferred from the FundManager. Only the FundManager can trigger minting.
- [GoodFundManager](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/goodfundmanager.md): Has permissions to collect interest from the staking contracts and permissions to tell GoodMarketMaker to mint. Anyone can trigger the collection and minting process.
- [GoodMarketMaker](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/goodmarketmaker.md): Helper contract for the GoodReserveCDai. It serves as a dynamic reserve ratio market maker.
- [ContributionCalculation](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/contributioncalculation.md): Helper contract for calculating the exit contribution (i.e. when selling G$ back to the reserve).
- [UBIScheme](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/ubischeme.md): Holds all the G$s that were transferred via bridge from the FundManager.
- [Identity](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/identity.md): The Identity contract controls addresses that are whitelisted to "Claim" UBI.
- [FirstClaimPool](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/firstclaimpool.md): Helper contract for UBIScheme. Manually funded by the Foundation to give 1G$ for "inactive" users when they claim.
- [AdminWallet](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/adminwallet.md): Helper contract for our backend servers to whitelist users and to fill their Fuse network gas.
- [OneTimePayments](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/onetimepayments.md): Payments on the GoodDollar wallet are done via payment links.
- [DonationsStaking](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/donationsstaking.md): Any ETH/DAI sent to this contract address is donated to the GoodDollar DAO and will generate interest to fund UBI.
- [NameService](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/nameservice.md): Helper contract, basically simple name to address resolver.
- [GReputation](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/greputation.md): The contract extends Reputation contract with delegation and cross blockchain merkle states.
- [CompoundVotingMachine](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/compoundvotingmachine.md): CompoundVotingMachine based on Compound's governance with a few differences.
- [StakersDistribution](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/stakersdistribution.md): Staking contracts will update this contract with staker token stake amount.
- [UniswapV2SwapHelper](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/uniswapv2swaphelper.md): The utilitary library which is helping to perform swaps in Uniswap V2.
- [Invites](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/invites.md): The contract that handles invites with pre allocated bounty pool with invitee bonus.
- [GovernanceStaking](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/governancestaking.md): This is the staking contract that allows citizens to stake G$ to get GOOD rewards.
- [ClaimersDistribution](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/claimersdistribution.md): The contract provides callbacks that can be used by UBIScheme contract to update when a citizen has claimed. It will distribute GOOD tokens each month pro rata based on number of claims.
- [CompoundStakingFactory](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/compoundstakingfactory.md): The staking contract that donates earned interest to the DAO.
- [AaveStakingFactory](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/aavestakingfactory.md): The staking contracts factory. Producing contracts donate earned interest to the DAO allowing stakers to deposit or withdraw their stake.
- [ExchangeHelper](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/exchangehelper.md): Helper contract to buy/sell G$ at GoodReserve with any token supported by Uniswap V2. Since reserve only supports cDAI.
- [FuseFaucet](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/fusefaucet.md): The contract is to provide functionality of topping the users with Fuse to pay transaction fees.
- [GoodDollarMintBurnWrapper](https://docs.gooddollar.org/previous-protocol-versions/protocol-v3/core-contracts-and-api/gooddollarmintburnwrapper.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gooddollar.org/previous-protocol-versions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
