• Stars
    star
    671
  • Rank 67,266 (Top 2 %)
  • Language
    Solidity
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Minimi Token. ERC20 compatible clonable token

MiniMe Token

Build Status

The MiniMeToken contract is a standard ERC20 token with extra functionality:

The token is easy to clone!

Anybody can create a new clone token from any token using this contract with an initial distribution identical to the original token at a specified block. The address calling the createCloneToken function will become the token controller and the token's default settings can be specified in the function call.

function createCloneToken(
    string _cloneTokenName,
    uint8 _cloneDecimalUnits,
    string _cloneTokenSymbol,
    uint _snapshotBlock,
    bool _isConstant
    ) returns(address) {

Once the clone token is created, it acts as a completely independent token, with it's own unique functionalities.

Balance history is registered and available to be queried

All MiniMe Tokens maintain a history of the balance changes that occur during each block. Two calls are introduced to read the totalSupply and the balance of any address at any block in the past.

function totalSupplyAt(uint _blockNumber) constant returns(uint)

function balanceOfAt(address _holder, uint _blockNumber) constant returns (uint)

Optional token controller

The controller of the contract can generate/destroy/transfer tokens at its own discretion. The controller can be a regular account, but the intention is for the controller to be another contract that imposes transparent rules on the token's issuance and functionality. The Token Controller is not required for the MiniMe token to function, if there is no reason to generate/destroy/transfer tokens, the token controller can be set to 0x0 and this functionality will be disabled.

For example, a Token Creation contract can be set as the controller of the MiniMe Token and at the end of the token creation period, the controller can be transferred to the 0x0 address, to guarantee that no new tokens will be created.

To create and destroy tokens, these two functions are introduced:

function generateTokens(address _holder, uint _value) onlyController

function destroyTokens(address _holder, uint _value) onlyController

The Token's Controller can freeze transfers.

If transfersEnabled == false, tokens cannot be transferred by the users, however they can still be created, destroyed, and transferred by the controller. The controller can also toggle this flag.

// Allows tokens to be transferred if true or frozen if false
function enableTransfers(bool _transfersEnabled) onlyController

Applications

If this token contract is used as the base token, then clones of itself can be easily generated at any given block number, this allows for incredibly powerful functionality, effectively the ability for anyone to give extra features to the token holders without having to migrate to a new contract. Some of the applications that the MiniMe token contract can be used for are:

  1. Generating a voting token that is burned when you vote.
  2. Generating a discount "coupon" that is redeemed when you use it.
  3. Generating a token for a "spinoff" DAO.
  4. Generating a token that can be used to give explicit support to an action or a campaign, like polling.
  5. Generating a token to enable the token holders to collect daily, monthly or yearly payments.
  6. Generating a token to limit participation in a token sale or similar event to holders of a specific token.
  7. Generating token that allows a central party complete control to transfer/generate/destroy tokens at will.
  8. Lots of other applications including all the applications the standard ERC 20 token can be used for.

All these applications and more are enabled by the MiniMe Token Contract. The most amazing part being that anyone that wants to add these features can, in a permissionless yet safe manner without affecting the parent token's intended functionality.

How to deploy a campaign

  1. Deploy the MinimeTokenFactory
  2. Deploy the MinimeToken
  3. Deploy the campaign
  4. Assign the controller of the MinimeToken to the campaign.

More Repositories

1

giveth-dapp

Giveth Dapp for crowdfunding and managing donations on the ethereum blockchain.
JavaScript
359
star
2

feathers-giveth

Featherjs server for caching giveth data.
JavaScript
87
star
3

liquidpledging

Liquid Pledging
Solidity
67
star
4

giveth-dapps-v2

This project is the aggregation of GIVeconomy and Giveth.io DApps in a single repo
TypeScript
61
star
5

vaultcontract

Timelock vault for securing the payments
JavaScript
57
star
6

impact-graph

TypeScript
49
star
7

giveth-docs

Documentation and Guides for Giveth.io
JavaScript
37
star
8

giveconomy-foundry

Solidity
29
star
9

giveth-planning

28
star
10

giv-token-contracts

TypeScript
27
star
11

ui-design-system

TypeScript
26
star
12

notification-center

It's a microservice that would handle all notification of giveth.io and trace.giveth.io
TypeScript
24
star
13

giveth-gatsby

Giveth 2.0 implementation in GatsbyJS
JavaScript
24
star
14

SiweAuthMicroservice

Implements Sign in with ethereum
TypeScript
24
star
15

DeVouch-FE

Front-end repository of the DeVouch project
TypeScript
24
star
16

givback-calculation

Calculate givback calculation for giveth donors
TypeScript
23
star
17

giveconomy-subgraph

TypeScript
23
star
18

giveconomy-balance-aggregator

TypeScript
23
star
19

analytics-dashboard

Analytics dashboard for Giveth data
TypeScript
23
star
20

givpower-bot

TypeScript
22
star
21

DeVouch-BE

DeVouch - Decentralized Vouching via Attestations
TypeScript
22
star
22

giveth-next

Giveth 2.0 implementation in NextJS
JavaScript
20
star
23

common-contract-deps

Base layer smart contracts that Giveth likes to use :-D
Solidity
18
star
24

milestonetracker

Milestone Tracker Contract
JavaScript
17
star
25

yogatoken

Yoga Token
Solidity
17
star
26

giveth-wiki

Wiki for giveth.io
HTML
16
star
27

solcpiler

Solidity compiler wraper to generate JS.
JavaScript
15
star
28

giveth-bridge

Giveth bridge
JavaScript
12
star
29

giveth-bot

Giveth matrix community bot
JavaScript
10
star
30

WHGBalanceVerification

Verification of the balances rescued from the multisig compromise
Python
10
star
31

buddy-bot

JavaScript
10
star
32

MVP

The First Prototype of CharityDAO: An Open Source Platform for Effective Charitable Giving
Solidity
9
star
33

liquidity-mining-dapp

TypeScript
9
star
34

milestonetracker-ui

User Interface for the Milestone Tracker
JavaScript
8
star
35

website

Website for Giveth
HTML
8
star
36

xchange-rates

Share proof of a crypto fiat exchange rate at a specific date
JavaScript
8
star
37

giveth-1-simulation

Generating giveth 1 whole state by processing network events
TypeScript
7
star
38

giveth-design-assets

Find all logos and graphics concerning the Giveth universe here and more in this link
Rich Text Format
7
star
39

wall-of-fame

Giveth Video Wall of Fame
JavaScript
7
star
40

dapp-mailer

Email notification system for (d)apps
HTML
6
star
41

GIVeconomy

The Giveth Economy is the collective of projects, donors, builders, and community members builders that build the future of giving
6
star
42

givbacks-scripts

Jupyter Notebook
5
star
43

ethereum-signal-aggregator

Minimum bias ethereum signal aggregator
JavaScript
5
star
44

pollmanager

Smart Contract that allows any kind of voting to the holders of a MiniMe contract
Solidity
5
star
45

withdrawcontract

Contract to distribute tokens/ethers to Minime to token holders
Solidity
4
star
46

Communication

Where we decentralize Giveth Communication
4
star
47

Donation-Doubler

Solidity
4
star
48

eth-contract-class

generate a js wrapper class given a contract abi
JavaScript
4
star
49

giveth-toshi-app

Giveth's Toshi chat bot app
JavaScript
4
star
50

giveth-io-typescript

Giveth.io TypeScript
TypeScript
4
star
51

liquidpledging-ui

Generic UI implementation for the Liquid Pledging smart contract
JavaScript
3
star
52

lpp-campaign

Ethereum contract for liquid pledging campaign plugin
JavaScript
3
star
53

lpp-milestone

Simple milestone plugin for liquid plading.
JavaScript
3
star
54

ApproveAndVoteGov

Approve and Vote Governance Contract for a DAO
3
star
55

givethdirectory

Giveth campaign directory
JavaScript
3
star
56

giveth-bridge-monitor

JavaScript
3
star
57

lpp-capped-milestone

LiquidPledging plugin to manage capped milestones
JavaScript
3
star
58

giveth-docs-bot

Ask questions about Giveth to a bot that fetches answers directly from Giveth Docs
Python
2
star
59

GIVfi-subgraph

TypeScript
2
star
60

Website-3.0

The Giveth website written in React
JavaScript
2
star
61

giveth-contracts-template

Useful template for developing and testing Solidity contracts, built with hardhat and waffle
TypeScript
2
star
62

gov-lab

Roff
2
star
63

apiGive

TypeScript
2
star
64

giv-token-subgraph

TypeScript
2
star
65

GIVfi

Solidity
1
star
66

giveth-beta-docs

Documentation and Guides for beta.giveth.io
JavaScript
1
star
67

coodcad

Simplify the cadCAD conviction3 simulation by introducing a smattering of Object Orientedness
Jupyter Notebook
1
star
68

youtube-video-backup

To Backup videos from Giveth's YouTube channels
Python
1
star
69

monoswap

TypeScript
1
star
70

givethai

JavaScript
1
star
71

reward-dao

JavaScript
1
star
72

fund-forwarder

Smart contract for the forwarding of funds to a campaign with an escape hatch to prevent loss of non-ether tokens.
Solidity
1
star
73

giveconomy-notification-service

TypeScript
1
star
74

website-old

@sebrohan's playground
CSS
1
star
75

univ3-liquidity-calc

Some back-of-the envelope calculation for uniV3 liquidity and liquidity ratio calculation
Python
1
star
76

lpp-dac

LiquidPledging plugin for dacs, which mints tokens for givers
JavaScript
1
star
77

giveth-world

D3js world map of
HTML
1
star
78

segment-analytics-node

Rewrite of the package to make http requests
TypeScript
1
star
79

GIVeconomy-fundraising

1
star
80

multisig

A fork of the Multisig contract that is used for the Ethereum Foundation, The DAO, and many other projects.
JavaScript
1
star
81

giveth-1-preview

Giveth 1 preview provider for social networks
JavaScript
1
star
82

giveth-monitor

Monitoring stack to be deployed on all our machines
Shell
1
star
83

Ethereum-dapp-bin

This repository contains the Multisig contract that is used for the Ethereum Foundation, The DAO, and many other projects.
JavaScript
1
star
84

docker-dapp

Docker image of the dapp, including feathers
1
star
85

giv-supply-function

JavaScript
1
star
86

vault-fetch-service

A simple systemd service that fetches Hashicorp Vault Secrets based on your needs
Shell
1
star
87

giveth-caddy

Dockerfile
1
star