Skip to content

Daemon-Technologies/dmt-dao-research

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DMT Dao Schedule

DMT-DAO

  • Contract to do:

    • DMT Token:
      • Has a property ‘authorized minter’ (that can be updated)
      • Only allows minting from authorized address (the minting contract) This is the main contract that cannot ever be changed
    • DMT Minting Contract:
      • Accepts STX and hold STX
      • Allows an admin to transfer STX
      • Contains the bonding curve function
    • STX Stacking Contract:
      • Probably not viable in Stacks 2.0, because the same contract cannot stack at different intervals
        • Should probably just be more centralized at first
        • Internally have ~8 wallets, which each stack for 8 cycles
          • At any point, there is one “cold” wallet that isn’t stacking. Transfer STX to that and then Stack with it, to the same BTC address
      • Will be viable in Stacks 2.1
    • Contract to hold BTC earned from Stacking
      • At first will need to be an internal wallet
      • Could be a Clarity contract if it held wrapped BTC
    • Pay out some amount of BTC from Stacking to DMT holders
    • Use some amount of the BTC from Stacking to buy more STX on open market to add to DAO
    • STX Redemption contract

Schedule

  • Clarinet project building
    • Clarinet check
    • Clarinet test
    • Before 5.21 Friday
  • DMT Token Contract (mocknet)
    • src-20 trait contract
      • transfer
      • name
      • symbol
      • decimals
      • balance-of
      • total-supply
      • support memo in new src-20 standard
    • support basic function
      • supply
      • balance_of
      • transfer
  • DMT Minting Contract (mocknet)
    • DMT Minting Contract
      • 200~300 lines
      • Bonding curve details(need to list every input and output in details)
  • STX Stacking Contract:
    • discuss a centralized way
    • manually stacking for each cycles.
  • STX Redemption contract
    • Should have detailed discusstion.

Stacks Related Material

Infrastructure

fungible tokenen.clar standard:

Mining

Multi-UTXOs

Mining-Monitor

Stacking

Stacking-Monitor

Clarity

Official Documentation:

Developing tools

Clarinet:

  • Clarity Runtime Packaged
  • Terminal Line Command

Clarity-js-sdk:

Relevant Projects

Clarity-Bitcoin

  • Clarity library for parsing Bitcoin transactions and block headers, and verifying that Bitcoin transactions were sent on the Bitcoin chain.

Projects:

Arkadiko :

PoX-Lite Challenge:

  • A PoX Lite Smart Contract in Clarity which simulates PoX.
    • A fungible token
    • Can only be minted when other people send to the contract their Stacks (STX) tokens.

daoOS:

  • Allowing members to sign up, be approved by the existing organization

  • Members will be able to post ideas, and these ideas can be fleshed out, budgets and milestones can be set

  • Members can then commit STX to projects they want to contribute to, when the full budget is met, they can begin working towards the milestones

  • When a milestone is met, the project owner can post it and have STX released on approval of a majority of anyone who staked STX to that project. This continues until the project has reached completion.

  • Source code and introduction: https://github.com/syvita/daoos

Boom Wallet:

  • NFT Wallet
    • NFT issue
    • NFT Transfer
    • NFT Market

Swapr:

TokenSoft:

  • xbtc token

CityCoin

  • Miami Coin

Development Work

Smart Contract

  • DMT Token Contract
    • transfer
    • balance-of
  • DMT Minting Contract(contains core part of POX Lite Contract)
    • mine-tokens: Mine tokens. The miner commits uSTX into this contract (which Stackers can claim later with claim-stacking-reward), and in doing so, enters their candidacy to be able to claim the block reward (via claim-token-reward).
    • claim-token-reward: Claim the block reward. This mints and transfers out a miner's tokens if it is indeed the block winner for the given Stacks block.
    • stack-tokens: Stack the contract's tokens.
    • get-entitled-stacking-reward: Determine how many uSTX a Stacker is allowed to claim, given the reward cycle they Stacked in and the current block height.
    • claim-stacking-reward: Claim a Stacking reward. Once a reward cycle passes, a Stacker can call this method to obtain any uSTX that were committed to the contract during that reward cycle (proportional to how many tokens they locked up).
    • get-block-winner: determine which miner won the token batch at a particular Stacks block height, given a sampling value.
    • get-tokens-per-cycle: Getter for getting how many uSTX are committed and tokens are Stacked per reward cycle.
    • get-stacked-in-cycle: Getter for getting how many tokens are Stacked by the given principal in the given reward cycle.
    • get-miners-at-block: Getter for getting the list of miners and uSTX committments for a given block.
  • Voting Contract - Pending...

Frontend

  • Landing Page
  • Dapp
    • Connection with chrome-extension wallet
    • Basic info of the dapp
    • User interfaces
      • mine
      • stack
      • claim-token-reward
      • claim-stacking-reward

Project Process

Mining

The mining process is like buying a lottery ticket. Every 5 blocks is a round. Assuming that the system will start mining at block 1, and the end of each round is on the 6th, 11th, 16th, etc. If the user deposits into the contract during a round, it will be automatically placed in the next round of calculation . For example, if the user deposit into the contract on the 3rd block, it will be confirmed on the 11th block whether he has mined a block and how much he has mined.

The user only needs to call the contract(mine) once in each round, not each block. When each round is over, the user can claim his rewards.

The probability of success in each round of mining is calculated as follows:

We assume that the total STX amount in each round is Ni, and i represents the i-th round. Assuming that the user deposits 100 STX to enter the contract before the i-th round, the average computing power of the user for each block in the i-th round is 20 STX. That is, the probability of a user's mining success in each block (5 blocks in a round) is about 100/Ni.

Stacking

It works as before.

Timeline

2021.06.15 - 2021.06.19:

  • Connection with the chrome-extension wallet, make sure that we can call the wallet through our dapp.

  • Call the smart contract through the chrome-extension wallet.

  • Implement the smart contract V1 and deploy it on the testnet.

  • mainnet CONTRACT deploy

2021.6.21 - 2021.7.1

  • DMT Wallet Setting in Smart Contract
    • Variable Setting for DMT Wallet
  • Multi-Mining Test
    • Testnet Contract deployment
    • Mainnet Test : Two miners compete one block, and only one miner will win/claim the block reward. And this process can be verified by Frontend API. [random sample => winner id]
  • Minimum Mining Amount Variable
    • 50 STX => 10 STX / block
    • block reward => 1 RTX / block
  • Token Contract Split
    • If RTX token wanna be used for DAO in the future, it would better to be splitted from Mint Contract
    • Under discussion(arkadiko/citycoin)
  • Research for Multi-Claim
  • Frontend integration/contract upgrade of readonly function
    • winner query
    • mining status query

2021.7.1 -

  • Maximum Participating Member: 128
  • Multi-Claim Implement (Doing)
    • Param Array Support
    • Maximum Array Length
  • Token Contract Split (Doing)
  • Optimize App Component (Doing)
    • By the end of this week

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published