# GoodDocs

## GoodDocs

- [Welcome to GoodDocs!](https://docs.gooddollar.org/readme.md): Here you will find all the documentation for the GoodDollar protocol Smart Contracts and Dapp interfaces.
- [GoodDollar Ecosystem Vision](https://docs.gooddollar.org/gooddollar-ecosystem-vision.md)
- [How GoodDollar Works](https://docs.gooddollar.org/how-gooddollar-works.md): How does the GoodDollar protocol and G$ tokenomics work? Learn how we utilize DeFi to fund wealth creation for all.
- [Architecture & Value Flow](https://docs.gooddollar.org/how-gooddollar-works/architecture-and-value-flow.md): How does the protocol works?
- [System's Elements](https://docs.gooddollar.org/how-gooddollar-works/systems-elements.md)
- [Sybil-Resistance](https://docs.gooddollar.org/how-gooddollar-works/sybil-resistance.md): What is GoodDollar’s sybil-resistance mechanism and how does it work?
- [GoodDollar In Numbers](https://docs.gooddollar.org/gooddollar-in-numbers.md): How is G$ being utilized, and by whom?
- [Buy & Sell G$](https://docs.gooddollar.org/user-guides/buy-and-sell-gusd.md)
- [Bridge GoodDollars](https://docs.gooddollar.org/user-guides/bridge-gooddollars.md): This is a smart contract guide for those who want to bridge between Ethereum<>Celo<>Fuse<>XDC using the explorer
- [Connect another wallet address to identity](https://docs.gooddollar.org/user-guides/connect-another-wallet-address-to-identity.md): How to connect multiple wallet address with your verified wallet address.
- [Frequently Asked Questions](https://docs.gooddollar.org/user-guides/frequently-asked-questions.md): Seeking clarity on GoodDollar? Explore our comprehensive FAQ page for answers to all your questions!
- [Web3 basic knowledge and security tips - by Consensys](https://docs.gooddollar.org/user-guides/frequently-asked-questions/web3-basic-knowledge-and-security-tips-by-consensys.md)
- [About GoodDollar](https://docs.gooddollar.org/user-guides/frequently-asked-questions/about-gooddollar.md)
- [GoodDollar Protocol & G$ Token](https://docs.gooddollar.org/user-guides/frequently-asked-questions/gooddollar-protocol-and-gusd-token.md)
- [Using GoodDollar](https://docs.gooddollar.org/user-guides/frequently-asked-questions/using-gooddollar.md)
- [GoodDollar Community](https://docs.gooddollar.org/user-guides/frequently-asked-questions/gooddollar-community.md)
- [Troubleshooting](https://docs.gooddollar.org/user-guides/frequently-asked-questions/troubleshooting.md)
- [Useful Links](https://docs.gooddollar.org/user-guides/useful-links.md)
- [Liquidity](https://docs.gooddollar.org/liquidity.md): How can you become a GoodDollar liquidity provider?
- [New GoodWallet](https://docs.gooddollar.org/wallet-and-dapps/new-goodwallet.md)
- [GoodDapp](https://docs.gooddollar.org/wallet-and-dapps/gooddapp.md)
- [GoodCollective](https://docs.gooddollar.org/wallet-and-dapps/goodcollective.md)
- [3rd Party Partners and Integrations](https://docs.gooddollar.org/wallet-and-dapps/3rd-party-partners-and-integrations.md)
- [GoodID & GoodOffers](https://docs.gooddollar.org/wallet-and-dapps/goodid-and-goodoffers.md)
- [Contributing to GoodDollar](https://docs.gooddollar.org/for-developers/contributing.md): Everyone is welcome — developers, designers, writers, founders, students, and hobbyists alike. Whatever your background, there's a path to contribute that fits your skills and availability.
- [Open Source Contributors](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors.md): Human contributors review, test, fix and validate AI-generated bounty pull requests before merge and payout.
- [Contributor Growth Path](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/contributor-growth-path.md): The more you contribute, the more you unlock. Each level opens higher-tier bounties — which means more responsibility and higher rewards.
- [Contributor Role](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/contributor-role.md)
- [Human Reviewer Role](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/human-reviewer-role.md): Reviewers require approval before picking up bounties. See Getting Reviewer Access below.
- [QA Role](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/qa-role.md)
- [Payments for Reviews, contributors & QA](https://docs.gooddollar.org/for-developers/contributing/open-source-contributors/payments-for-reviews-contributors-and-qa.md): Please note: Payout requests has to be done by a G$ verified wallet.
- [Developer Guides](https://docs.gooddollar.org/for-developers/developer-guides.md)
- [Deploy your own GoodDapp UI](https://docs.gooddollar.org/for-developers/developer-guides/deploy-your-own-gooddapp-ui.md): This is a step-by-step guide to deploy your own instance of the GoodDapp to interact with the V2 smart contracts on Mainnet.
- [How to integrate the G$ token](https://docs.gooddollar.org/for-developers/developer-guides/how-to-integrate-the-gusd-token.md)
- [Use G$ streaming](https://docs.gooddollar.org/for-developers/developer-guides/use-gusd-streaming.md)
- [Ethers V5/useDapp Context Setup](https://docs.gooddollar.org/for-developers/developer-guides/ethers-v5-usedapp-context-setup.md)
- [APIs & SDKs](https://docs.gooddollar.org/for-developers/apis-and-sdks.md)
- [UBI](https://docs.gooddollar.org/for-developers/apis-and-sdks/ubi.md): Every verified person is eligible to claim daily free UBI in the form of G$ tokens.
- [Claim UBI (Ethers v5/ React)](https://docs.gooddollar.org/for-developers/apis-and-sdks/ubi/claim-ubi-ethers-v5-react.md): Every verified person is eligible to claim daily free UBI in the form of G$ tokens.
- [Claim UBI (Viem/Wagmi)](https://docs.gooddollar.org/for-developers/apis-and-sdks/ubi/claim-ubi-viem-wagmi.md)
- [Claim UBI (Web-components)](https://docs.gooddollar.org/for-developers/apis-and-sdks/ubi/claim-ubi-web-components.md)
- [Sybil Resistance](https://docs.gooddollar.org/for-developers/apis-and-sdks/sybil-resistance.md): To be able to distribute free money while ensuring each unique person registers only once, we need to verify the liveness and uniqueness of people.
- [Identity (Ethers v5 / React)](https://docs.gooddollar.org/for-developers/apis-and-sdks/sybil-resistance/identity-ethers-v5-react.md): Follow below steps to integrate the Identity flow into your dapp!
- [Identity (Viem/Wagmi)](https://docs.gooddollar.org/for-developers/apis-and-sdks/sybil-resistance/identity-viem-wagmi.md)
- [Core Contracts](https://docs.gooddollar.org/for-developers/core-contracts.md)
- [GoodDollar](https://docs.gooddollar.org/for-developers/core-contracts/gooddollar.md): The GoodDollar G$ token follows the ERC-20 token standard and also supports ERC-677.
- [Identity](https://docs.gooddollar.org/for-developers/core-contracts/identity.md): The Identity contract controls addresses that are whitelisted to "Claim" UBI.
- [UBIScheme](https://docs.gooddollar.org/for-developers/core-contracts/ubischeme.md): Holds all the G$s that were transferred via bridge from the FundManager.
- [MentoReserve](https://docs.gooddollar.org/for-developers/core-contracts/mentoreserve.md): The contract manages collateral assets and reserve tokens for the Mento protocol exchange system.
- [MentoExpansionController](https://docs.gooddollar.org/for-developers/core-contracts/mentoexpansioncontroller.md): The contract controls how new GoodDollar tokens are minted and distributed for UBI.
- [MentoExchangeProvider](https://docs.gooddollar.org/for-developers/core-contracts/mentoexchangeprovider.md): The contract implements the core exchange mechanism for GoodDollar using a Bancor-style bonding curve.
- [MentoBroker](https://docs.gooddollar.org/for-developers/core-contracts/mentobroker.md): The contract executes token swaps between reserve assets and GoodDollar tokens through exchange providers.
- [Faucet](https://docs.gooddollar.org/for-developers/core-contracts/faucet.md): The contract is to provide functionality of topping the users with native tokens to pay transaction fees.
- [ContributionCalculation](https://docs.gooddollar.org/for-developers/core-contracts/contributioncalculation.md): Helper contract for calculating the exit contribution (i.e. when selling G$ back to the reserve).
- [OneTimePayments](https://docs.gooddollar.org/for-developers/core-contracts/onetimepayments.md): Payments on the GoodDollar wallet are done via payment links.
- [NameService](https://docs.gooddollar.org/for-developers/core-contracts/nameservice.md): Helper contract, basically simple name to address resolver.
- [Previous Protocol Versions](https://docs.gooddollar.org/previous-protocol-versions.md)
- [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)
