Skip to content
View AmpleGold's full-sized avatar
Block or Report

Block or report AmpleGold

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AmpleGold/README.md
AmpleGold

AmpleGold - $AMPLG

AmpleGold (code name $AMPLG) is a goldpegged defi protocol that is based on Ampleforths elastic tokensupply model. AMPLG is designed to maintain its base price target of 0.01g of Gold with a progammed inflation adjustment (rebase).

Where Ampleforth rose to a 300 million marketcap in merely weeks, there were a couple of flaws in their model. We have remodeled and reprogrammed these flaws into a new version of the AmpleGold defi protocol.

We are all about decentralization and one thing we distrust most is the current economic fiat system. When the current financial system collapses and the dollar crashes, we strive to remain truly stable by pegging our token to the goldprice. Where 1 $AMPLG = 0.01 gram of Gold.

Also there were issues with the rebasing protocol. Because it is always at a fixed time and date, there was huge volatility right before and after each rebase caused by bots, algorithms and traders. We do this by using a randomized rebase event, that triggers an average of 365 times a year but at at random times.

Table of Contents

Getting-Started

This repository contains the token contract including their dependencies used on the Ethereum blockchain.

Mainnet-addresses

The official mainnet addresses of $AMPLG are:

Contracts

AdminProxy.sol

  • By design, smart contracts are immutable. On the other hand, software quality heavily depends on the ability to upgrade and patch source code in order to produce iterative releases. Even though blockchain based software profits significantly from the technology’s immutability, still a certain degree of mutability is needed for bug fixing and potential product improvements. OpenZeppelin Upgrades solves this apparent contradiction by providing an easy to use, simple, robust, and opt-in upgrade mechanism for smart contracts that can be controlled by any type of governance, be it a multi-sig wallet, a simple address or a complex DAO.
  • https://docs.openzeppelin.com/upgrades/2.7/proxies

AMPLG_GoldPolicy.sol

  • Parent contract for controlling the smart contract via the gold orchestrator policy.
  • Creates connection to fetch the gold prices and market prices through the Gold Oracle.
  • Rebasing is pegged to Paxos Gold price.
  • A randomized lag factor (6-14) is applied based on the current supply, with a function to accelerate increase in supply.

Currently under development:

  • Integrate Uniswap libraries to connect with Uniswap V2.

AMPLG.sol

  • Basic ERC20 Detailed Token with a rebase function, callable by the Gold Orchestrator Policy
  • Contract is Ownable. Owner can be transferred to allow upgrades to finalize the on-chain random rebasing.
  • Once the code in the contracts is finalized, contract owner will be locked to ensure no party has control and the implementation is completely self governed.

AMPLG_GoldOracle.sol

  • Controls through provider reports the current gold price and market price.

AMPLG_SunshineReserve.sol

Currently under development:

  • Implement governance of Balancer (BAL) token
  • Implement new staking interface

AMPLG_TeamReserve.sol

  • Smart contract for locking the team tokens of AmpleGold.io

Technology

How do rebase events work?

AMPLG’s Elastic token supply defi-protocol has been inspired by AmpleForth’s token model, with some extra features like a randomized rebasing timing and model. AMPLG reaches a supply-price equilibrium with its random rebasing. This means the volatility is in the token supply instead of the token price.

When you Hold $AMPLG, you own a percentage of the total supply. Your holdings rise in value when the marketcap rises.

When the price of $AMPLG is above the target price. The contract will activate a rebase event to increase $AMPLG in circulation and vice versa.

The target price for 1 $AMPLG = 0.01g of Gold = $0.63596

To achieve price-supply equilibrium, the protocol expands and contracts supply in one of two ways. Given a price target, Pt and price threshold, δ:

if the exchange rate between AMPLG’s and its target is > Pt + δ, the protocol responds by expanding to coin holders proportionally.

if the exchange rate between AMPLG’s and its target is < Pt − δ, the protocol responds by contracting from coin holders proportionally.

Above the threshold (Pt + δ) the protocol expands.
Below the threshold (Pt – δ) the protocol contracts.

Also, a randomized, curved lag factor has been added. This allows the supply to increase faster at a low marketcap. If the supply is high, the lag factor has a bigger chance to be high as well.

Minimum Lag factor = 6
Maximum Lag factor = 14

Contact

Official Links:

E-mail

Contact us via e-mail:

amplegold@protonmail.com

Install

# Install project dependencies
npm install

# Install ethereum local blockchain(s) and associated dependencies
npx setup-local-chains

Contribute

To report bugs within this package, create an issue in this repository. For security issues, please contact amplegold@protonmail.com When submitting code ensure that it is free of lint errors and has 100% test coverage.

# Lint code
npm run lint

# View code coverage
npm run coverage

License

GNU General Public License v3.0 (c) 2020 AmpleGold.io

Popular repositories

  1. AmpleGold AmpleGold Public

    AmpleGold - $AMPLG is a goldpegged defi protocol that is based on Ampleforths elastic tokensupply model. Baseprice is 1 $AMPLG = 0.01 gram of Gold

    Solidity 2 3

  2. uniswap-sdk uniswap-sdk Public

    Forked from Uniswap/v2-sdk

    🛠 An SDK for building applications on top of Uniswap.

    TypeScript 1

  3. token-geyser token-geyser Public

    Forked from ampleforth/token-geyser

    JavaScript

  4. balancer-core balancer-core Public

    Forked from balancer/balancer-core

    Balancer on the EVM

    Solidity

  5. token-lists token-lists Public

    Forked from Uniswap/token-lists

    📚 The Token Lists specification

    TypeScript

  6. uniswap-lib uniswap-lib Public

    Forked from Uniswap/solidity-lib

    📖 Solidity libraries that are shared across Uniswap contracts

    TypeScript