/gho-core

Primary LanguageSolidityMIT LicenseMIT

Build pass

        .///.                .///.     //.            .//  `/////////////-
       `++:++`              .++:++`    :++`          `++:  `++:......---.`
      `/+: -+/`            `++- :+/`    /+/         `/+/   `++.
      /+/   :+/            /+:   /+/    `/+/        /+/`   `++.
  -::/++::`  /+:       -::/++::` `/+:    `++:      :++`    `++/:::::::::.
  -:+++::-`  `/+:      --++/---`  `++-    .++-    -++.     `++/:::::::::.
   -++.       .++-      -++`       .++.    .++.  .++-      `++.
  .++-         -++.    .++.         -++.    -++``++-       `++.
 `++:           :++`  .++-           :++`    :+//+:        `++:----------`
 -/:             :/-  -/:             :/.     ://:         `/////////////-

Gho

This repository contains the source code, tests and deployments for both GHO itself and the first facilitator integrating Aave. The repository uses Hardhat development framework.

Description

GHO is a decentralized, protocol-agnostic crypto-asset intended to maintain a stable value. GHO is minted and burned by approved entities named Facilitators.

The first facilitator is the Aave V3 Ethereum Pool, which allows users to mint GHO against their collateral assets, based on the interest rate set by the Aave Governance. In addition, there is a FlashMint module as a second facilitator, which facilitates arbitrage and liquidations, providing instant liquidity.

Furthermore, the Aave Governance has the ability to approve entities as Facilitators and manage the total amount of GHO they can generate (also known as bucket's capacity).

Documentation

See the link to the technical paper

Audits and Formal Verification

You can find all audit reports under the audits folder

Getting Started

Clone the repository and run the following command to install dependencies:

npm i
forge i

If you need to interact with GHO in the Goerli testnet, provide your Alchemy API key and mnemonic in the .env file:

cp .env.example .env
# Fill ALCHEMY_KEY and MNEMONIC in the .env file with your editor
code .env

Compile contracts:

npm run compile

Run the test suite:

npm run test

Deploy and setup GHO in a local Hardhat network:

npm run deploy-testnet

Deploy and setup GHO in Goerli testnet:

npm run deploy-testnet:goerli

Connect with the community

You can join the Discord channel or the Governance Forum to ask questions about the protocol or talk about Gho with other peers.