Smart contract
Commentary: Looks like a standard ERC20 contract.
// for DAO.
uint256 public constant AMOUNT_DAO = MAX_SUPPLY / 100 * 20;
address public constant ADDR_DAO = 0x06bB1467b38d726b3eb39eB2FBAE6021feAE935F;
// for staking
uint256 public constant AMOUNT_STAKING = MAX_SUPPLY / 100 * 20;
address public constant ADDR_STAKING = 0x7d28988391034A4C756f0c3E1A3E033175B04C77;
// for liquidity providers
uint256 public constant AMOUNT_LP = MAX_SUPPLY / 100 * 10;
address public constant ADDR_LP = 0x709CD2aAAe592930616720115b6a3Dbdf1407664;
// for airdrop
uint256 public constant AMOUNT_AIREDROP = MAX_SUPPLY - (AMOUNT_DAO + AMOUNT_STAKING + AMOUNT_LP);
The smart contract states exactly what is written on the website:
This tweet is correct.
https://twitter.com/fabdaRice/status/1474605851142930435
According to this mint function.
function claim(uint256 amountV, bytes32 r, bytes32 s) external {
uint256 amount = uint248(amountV);
uint8 v = uint8(amountV >> 248);
uint256 total = _totalSupply + amount;
require(total <= MAX_SUPPLY, "OpenDAO: Exceed max supply");
require(minted(msg.sender) == 0, "OpenDAO: Claimed");
bytes32 digest = keccak256(abi.encodePacked("\\x19Ethereum Signed Message:\\n32",
ECDSA.toTypedDataHash(_domainSeparatorV4(),
keccak256(abi.encode(MINT_CALL_HASH_TYPE, msg.sender, amount))
)));
require(ecrecover(digest, v, r, s) == cSigner, "OpenDAO: Invalid signer");
_totalSupply = total;
_mint(msg.sender, amount);
It is possible for the devs to “create” new tokens. But everything will be on-chain, so we can check back if the opensea transaction volume matches.
Why it was created
Core contributors:
This project was initiated by core contributor 9x9x9.eth (https://twitter.com/9x9x9eth) and a bunch of likeminded contributors!
https://twitter.com/9x9x9eth/status/1474632931821957124?s=20