# Previous Protocol Versions

- [Protocol V1](/previous-protocol-versions/smart-contracts-guide.md): An introduction to the key components and members in the GoodDollar protocol V1.
- [Architecture & Value Flow](/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](/previous-protocol-versions/smart-contracts-guide/core-contracts-and-api.md): This page provides contract addresses for key components of GoodDollar protocol.
- [Protocol V2](/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](/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](/previous-protocol-versions/protocol-v2/systems-elements.md)
- [1. The token (G$)](/previous-protocol-versions/protocol-v2/systems-elements/1.-the-token-gusd.md)
- [2. The Reserve](/previous-protocol-versions/protocol-v2/systems-elements/2.-the-reserve.md)
- [3. The Trust](/previous-protocol-versions/protocol-v2/systems-elements/3.-the-trust.md)
- [4. Staking rewards (APR)](/previous-protocol-versions/protocol-v2/systems-elements/4.-staking-rewards-apr.md)
- [5. The Fund Manager](/previous-protocol-versions/protocol-v2/systems-elements/5.-the-fund-manager.md)
- [6. The Distribution Contract (DisCo)](/previous-protocol-versions/protocol-v2/systems-elements/6.-the-distribution-contract-disco.md)
- [7. Governance (DAO)](/previous-protocol-versions/protocol-v2/systems-elements/7.-governance-dao.md)
- [Core Contracts & API](/previous-protocol-versions/protocol-v2/core-contracts-and-api.md)
- [GoodDollar](/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)](/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)](/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](/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](/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](/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](/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](/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](/previous-protocol-versions/protocol-v2/core-contracts-and-api/identity.md): The Identity contract controls addresses that are whitelisted to "Claim" UBI.
- [FirstClaimPool](/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](/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](/previous-protocol-versions/protocol-v2/core-contracts-and-api/onetimepayments.md): Payments on the GoodDollar wallet are done via payment links.
- [DonationsStaking](/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](/previous-protocol-versions/protocol-v2/core-contracts-and-api/nameservice.md): Helper contract, basically simple name to address resolver.
- [GReputation](/previous-protocol-versions/protocol-v2/core-contracts-and-api/greputation.md): The contract extends Reputation contract with delegation and cross blockchain merkle states.
- [CompoundVotingMachine](/previous-protocol-versions/protocol-v2/core-contracts-and-api/compoundvotingmachine.md): CompoundVotingMachine based on Compound's governance with a few differences.
- [StakersDistribution](/previous-protocol-versions/protocol-v2/core-contracts-and-api/stakersdistribution.md): Staking contracts will update this contract with staker token stake amount.
- [UniswapV2SwapHelper](/previous-protocol-versions/protocol-v2/core-contracts-and-api/uniswapv2swaphelper.md): The utilitary library which is helping to perform swaps in Uniswap V2.
- [Invites](/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](/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](/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](/previous-protocol-versions/protocol-v2/core-contracts-and-api/compoundstakingfactory.md): The staking contract that donates earned interest to the DAO.
- [AaveStakingFactory](/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](/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](/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](/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](/previous-protocol-versions/protocol-v3/architecture-and-value-flow.md): How does the protocol works?
- [System's Elements](/previous-protocol-versions/protocol-v3/systems-elements.md)
- [Core Contracts & API](/previous-protocol-versions/protocol-v3/core-contracts-and-api.md)
- [GoodDollar](/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)](/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)](/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](/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](/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](/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](/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](/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](/previous-protocol-versions/protocol-v3/core-contracts-and-api/identity.md): The Identity contract controls addresses that are whitelisted to "Claim" UBI.
- [FirstClaimPool](/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](/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](/previous-protocol-versions/protocol-v3/core-contracts-and-api/onetimepayments.md): Payments on the GoodDollar wallet are done via payment links.
- [DonationsStaking](/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](/previous-protocol-versions/protocol-v3/core-contracts-and-api/nameservice.md): Helper contract, basically simple name to address resolver.
- [GReputation](/previous-protocol-versions/protocol-v3/core-contracts-and-api/greputation.md): The contract extends Reputation contract with delegation and cross blockchain merkle states.
- [CompoundVotingMachine](/previous-protocol-versions/protocol-v3/core-contracts-and-api/compoundvotingmachine.md): CompoundVotingMachine based on Compound's governance with a few differences.
- [StakersDistribution](/previous-protocol-versions/protocol-v3/core-contracts-and-api/stakersdistribution.md): Staking contracts will update this contract with staker token stake amount.
- [UniswapV2SwapHelper](/previous-protocol-versions/protocol-v3/core-contracts-and-api/uniswapv2swaphelper.md): The utilitary library which is helping to perform swaps in Uniswap V2.
- [Invites](/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](/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](/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](/previous-protocol-versions/protocol-v3/core-contracts-and-api/compoundstakingfactory.md): The staking contract that donates earned interest to the DAO.
- [AaveStakingFactory](/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](/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](/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](/previous-protocol-versions/protocol-v3/core-contracts-and-api/gooddollarmintburnwrapper.md)
