NoBug-Governance Token of NeoBurger

Neoburger
3 min readNov 24, 2021

--

BurgerDAO

BurgerDAO is the owner of all smart contracts of project NeoBurger.

Of course, BurgerDAO is the owner of BurgerDAO smart contract itself.

1. Fundamental Ideas

  • BurgerDAO is designed to provide a decentralized decision-making system for NeoBurger.
  • BurgerDAO is a proposal-based voting system.
  • NeoBurger Governance Token (NoBug) holders and BurgerNEO (bNEO) holders are the voters of BurgerDAO.
  • NeoBurger Governance Token (NoBug) holders vote for the system-wide decisions and BurgerNEO (bNEO) holders vote for native Neo governance strategy preferences.
  • Layer 2 infrastructures are used and a TEE runs in GitHub is used as a bridge between layer 1 and layer 2.
  • The BurgerDAO contract is an agent to execute the bypassed proposals.
  • There is a locking period for each bypassed proposal before execution.

2. NeoBurger Governance Token

  • Name: NeoBurger Governance Token
  • Symbol: NoBug (re.sub('[re]', '', 'NeoBurger'))
  • Decimals:10
  • Total Supply:1844674407.3709551616

3. Distribution and Release Plan

  • 25% reserve to NeoBurger contributors
  • 75% on-chain distribution

3.1 Contributors Release Plan

Total amount 461168601.8427387904

everyone who continuously contribute to NeoBurger project for at least 256 days is able to claim its NoBug reward. (The list of contributors and their rewards will be public on GitHub.)

The contributor reward for the first claimer is 14411518.8075855872 (0.78125%)

The contributor reward for the n-th claimer is 96.875% of the contributor reward for the n-1-th claimer.

3.2 On-chain Release Plan

The release amount of the first year is 345876451.3820540928.

The release amount of the n-th year is 75% of The release amount of the n-1-th year.

BurgerDAO starts to distribute the token since the second year.

Distribution ways:

Airdrop

  • neo communities and contributors: 21617278.2113783808
  • early users: 21617278.2113783808
  • TBD

On-chain mining

  • bNEO stake
  • TBD

4. For Investors

NoBug is designated as a sober governance token without explicit values for investment. That means the token is not regarded as an asset to be traded publicly and massively.

Besides, we do not offer any explicit incentive in the NoBug system. No built-in reward is offered for voting or delegating.

5. TEE Based DAO

To ensure cheap costs, high efficiency and authentic execution, we deploy a Neo wallet on GitHub actions with open-source codes to be an impartial TEE. No one will be able to access the private key of the TEE wallet, because the private key is mined by GitHub actions itself to meet certain criteria on the wallet address. TEE has the permission to count votes on the testnet and execute proposals on the mainnet.

Testnet, IPFS and other decentralized storage platform are considered to temporarily store the users’ voting payload and the payloads will be collected and counted by the GitHub TEE. The execution will be submitted to the mainnet once the proposal is bypassed.

6. Execution on mainnet

When TEE finds that a proposal has been passed, it first calls submitApprovedExecution(UInt256 digest) to submit the digested SHA256 of the proposal. The submitted proposal is publicized for at least 4 days before it can be executed by TEE. After the waiting period for publicity, TEE can call execute(BigInteger id, UInt160 scripthash, string method, object[] args) on the mainnet to actually execute the proposal.

7. Countermeasure on emergency

Using GitHub actions as a TEE is an efficient solution, but in case the TEE is suspected to be misbehaving, NoBug holders have the power to call pauseContract on the mainnet, which temporarily prevents the mainnet contract to execute any proposal.
Additionally, anyone who holds more than 50% of the total supply of NoBug can submitExecution(UInt256 digest) on mainnet without having to win a vote.

8. The delegation system

You can delegate your votes to anyone you trust. And if your delegate votes for a proposal, you automatically vote for it. Call the methoddelegate(UInt160 from, UInt160 to) on testnet to delegate your votes to someone. To cancel delegating, you can delegate to yourself or to a zero scripthash.

The relationship of delegation is not transmissible. For example, when A delegates to B, and B delegates to C, then C’s voting for a proposal does not lead to A’s automatic voting.

--

--