Tokens Are Back In Style
The Graph Mainnet Launch, Coinbase IPO, FinCEN "Unhosted" Wallet Judgement
What a fantastic day for DeFi. No, wait! What a epic day for Ethereum. Woah, hold up! What a phenomenal day for all of crypto!
December 17, 2020 marked the launch of The Graph Mainnet. The Graph is a necessary tool for the Ethereum space handling thousands of query requests per second for dapps of all shapes and sizes.The Graph is an indexing protocol for querying data on networks like Ethereum and IPFS. It powers thousands of applications in both DeFi and Web3 ecosystem. The great thing about The Graph is anyone can build and publish open APIs, called subgraphs. These applications can then be queried using GraphQL to get vital blockchain data. For the first couple years The Graph lived on a hosted platform with potential for critical failures due to centralization risks but now with the launch of mainnet will be more robust and distributed globally thanks to hundreds of indexers located all around the world. The Graph is used for dapps like Uniswap, Synthetix, Aragon, AAVE, Gnosis, Balancer, Livepeer, DAOstack, Decentraland and thousands of others. But that isn't even the crazy part! The Graph usage has been growing at over crazy rates and recently did somewhere in the ballpark of 10 Billion queries in November.
The Graph is built up of a core team who started the project and an inspirational community of thousands from 100+ countries. There are investors from the public sale, indexers who run hardware and software to handle the network, delegators who essentially stake based on Indexer strength, and curators who signal strength of well developed and useful subgraphs. All together this project brings together talents of all kinds to accomplish the dream of all crypto enthusiasts, an open Web3 ecosystem.
Now to The Graph's native token $GRT. GRT is what indexers stake and delegators/curators signal with to prove they have skin in the game essentially creating incentivized Token Economics for participants in the network. GRT has a Total Supply of 10,000,000,000 tokens with an initial supply of just over 1,200,000,000 tokens. More information on the token distribution and economics can be found in the link provided. With all the major exchanges such as Coinbase, Binance, Kraken, Uniswap, Huobi, and many others already listing or in the process of listing GRT, anyone interested in participating in the network can easily do so.
Market Update (Monday 9:30 AM ET)
Percent Change (Rounded) Based on Last Monday Open (9:30 AM ET)
Bitcoin- $22,750 (+15%)
Ether- $610 (+5%)
Gold- $1,879 (+3%)
DJI Average- 30,159 (UNCH)
NYSE Composite Index- 14,467 (UNCH)
NASDAQ Composite Index- 12,804 (+3%)
S&P500 Index- 3,684 (UNCH)
New Developments
Bitcoin Whale Emerges With $1 Billion, Alan Howard’s Backing, Bloomberg
UK Investment Manager Ruffer Adds Bitcoin to Portfolio, CaseBitcoin
CME Announces Ether Future Contracts, CoinDesk
Coinbase Files Form S1 With SEC For IPO, Coinbase Blog
Tornado.Cash Governance Proposal, Tornado Cash
The Graph’s Flight Path To Mainnet, The Graph Blog
Pornhub: Now Accepting Crypto Only, Decrypt
Introducing Compound Chain: Distributed Ledger to Transfer Value, Compound
Industry Insights
CFTC Watches Digital Asset Space: DeFi & Governance, CoinDesk
Ledger Nano Threat Model With DeFi, Charles Guillemet
Dev Talk
Announcing IBC 1.0 Implementation Release Candidate, Christopher Goes
Fraud Proof Security Drill: Will You Be My 1-of-N?, Optimism
Solidity 0.8.0 Release Announcement, Ethereum.org
dApp Education
*How to become a Tornado Cash Relayer using Avado’s Blockchain Computer
Developer Activity
Tornado.Cash Reward Swap Contract:
*Tools: Metamask (Wallet), Remix IDE (Development Environment), Solidity (Smart Contract Language) Ethereum (Blockchain), Etherscan Block Explorer
**Created by Tornado.Cash Team
***RewardSwap is ENSResolve. This is only the last ~100 lines of code in the contract
# set pragma
pragma solidity ^0.6.0;
# contract (Source)
/**
Let's imagine we have 1M TORN tokens for anonymity mining to distribute during 1 year (~31536000 seconds).
The contract should constantly add liquidity to a pool of claimed rewards to TORN (REWD/TORN). At any time user can exchange REWD->TORN using
this pool. The rate depends on current available TORN liquidity - the more TORN are withdrawn the worse the swap rate is.
The contract starts with some virtual balance liquidity and adds some TORN tokens every second to the balance. Users will decrease
this balance by swaps.
Exchange rate can be calculated as following:
BalanceAfter = BalanceBefore * e^(-rewardAmount/poolWeight)
tokens = BalanceBefore - BalanceAfter
*/
contract RewardSwap is EnsResolve {
using SafeMath for uint256;
uint256 public constant DURATION = 365 days;
IERC20 public immutable torn;
address public immutable miner;
uint256 public immutable startTimestamp;
uint256 public immutable initialLiquidity;
uint256 public immutable liquidity;
uint256 public tokensSold;
uint256 public poolWeight;
event Swap(address indexed recipient, uint256 pTORN, uint256 TORN);
event PoolWeightUpdated(uint256 newWeight);
modifier onlyMiner() {
require(msg.sender == miner, "Only Miner contract can call");
_;
}
constructor(
bytes32 _torn,
bytes32 _miner,
uint256 _miningCap,
uint256 _initialLiquidity,
uint256 _poolWeight
) public {
require(_initialLiquidity <= _miningCap, "Initial liquidity should be lower than mining cap");
torn = IERC20(resolve(_torn));
miner = resolve(_miner);
initialLiquidity = _initialLiquidity;
liquidity = _miningCap.sub(_initialLiquidity);
poolWeight = _poolWeight;
startTimestamp = getTimestamp();
}
function swap(address _recipient, uint256 _amount) external onlyMiner returns (uint256) {
uint256 tokens = getExpectedReturn(_amount);
tokensSold += tokens;
require(torn.transfer(_recipient, tokens), "transfer failed");
emit Swap(_recipient, _amount, tokens);
return tokens;
}
/**
@dev
*/
function getExpectedReturn(uint256 _amount) public view returns (uint256) {
uint256 oldBalance = tornVirtualBalance();
int128 pow = FloatMath.neg(FloatMath.divu(_amount, poolWeight));
int128 exp = FloatMath.exp(pow);
uint256 newBalance = FloatMath.mulu(exp, oldBalance);
return oldBalance.sub(newBalance);
}
function tornVirtualBalance() public view returns (uint256) {
uint256 passedTime = getTimestamp().sub(startTimestamp);
if (passedTime < DURATION) {
return initialLiquidity.add(liquidity.mul(passedTime).div(DURATION)).sub(tokensSold);
} else {
return torn.balanceOf(address(this));
}
}
function setPoolWeight(uint256 _newWeight) external onlyMiner {
poolWeight = _newWeight;
emit PoolWeightUpdated(_newWeight);
}
function getTimestamp() public view virtual returns (uint256) {
return block.timestamp;
}
}
Blockchain Jobs
Want your company’s open positions listed? Send an email to defibridge@gmail.com
Earn Opportunity
Lolli pays you in Bitcoin to shop through their browser extension online at 1000+ retailers and just released an iOS app. The app allows users to access their wallet balance and participate in the Daily Stack. The Daily Stack gives users a chance to win various amounts of BTC everyday just for getting on the app. Download the app using the link below! Referral Code: RGZNEN