IoTeX Charity Program

Community Reward Program: IoTeX Charity Program

We have selected a few charities that align with IoTeX’s mission of “connecting the physical world, block by block” as part of our community reward program: IoTeX Charity Program.


You may think that blockchain research is very well funded, but that is often not the case. The truth is: grants in an academic setting are often preferentially given to prominent researchers with a lot of existing resources. The whole distributed concept that Satoshi promoted was to close the gap in wealth disparity. We want the donated ether to close the research funding disparity between a tenured professor and a young professor starting his career/a developer hacking his way through the next breakthrough/a comp sci student with the next big idea.

IoTeX 1st Charity Program — ETH Foundation

Ethereum has revolutionized the blockchain world for the past four years and made “blockchain” the newest buzzword. As an industry leader, Ethereum has provided grants to fuel researchers and developers to work on various forefronts to support the entire blockchain ecosystem. IoTeX strongly believes that we can move forward the entire industry through rigorous research and collaboration. We need talents and the brightest minds to make a splash in the world. A small yet powerful way for you to help our cause is to donate ETH to the Ethereum Foundation to help fund blockchain research.


You may think that blockchain research is very well funded, but that is often not the case. The truth is: grants in an academic setting are often preferentially given to prominent researchers with a lot of existing resources. The whole distributed concept that Satoshi promoted was to close the gap in wealth disparity. We want the donated Ether to close the research funding disparity between a tenured professor and a young professor starting his career/a developer hacking his way through the next breakthrough/a comp sci student with the next big idea.

IoTeX Appreciates Your Help in Charity!

How To Proxy Payments During Charity Donation Campaign

Thanks to our beloved community. The charity donation campaign has been a great success! During the campaign, we received many interesting questions from the community regarding how the donation pipeline works and why it is so powerful. The answers are in this blog post!

The Tale of Two Roles

In general, there are two major roles in our pipeline that a donor interacts with: the bot and the smart contract. Concretely:

  1. A donor Bob starts a conversation with the bot to signal his intention to join the campaign; Once validated, the bot discloses the address of the smart contract to Bob;
  2. Bob sends a certain amount of ETH to the given smart contract;
  3. The smart contract validates the eligibility of the donor and the payment, and proxies the payment to the address of the charity;
  4. Meanwhile, the bot periodically retrieves transactions against the smart contract and checks if they went through;
  5. If so, the bot awards Bob with the points and notifies him on Telegram.

Basically, a smart contract is a computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties. These transactions are trackable and irreversible. Smart contracts were first proposed by Nick Szabo, who coined the term, in 1994. Ethereum implements a Turing-complete language on its blockchain as the framework for realizing the smart contract in a decentralized manner. IoTeX uses a smart contract running on top of Ethereum to proxy payments to charities’ Ethereum wallets.

Make it Simple to Receive Payments

To ensure the donors have a great experience, the pay-to-smart-contract process should be as simple as possible — sending ETH from any Ethereum wallets/clients without special operations. To make this happen, IoTeX makes use of the fallback function, which is the only unnamed function in a contract and is executed on a call to the contract if none of the other functions match the given function signature. We implemented it as below, e.g., once a payment is sent to the contract, the fallback function is executed which in turn calls donate() to do the actual work.

function () external payable {
function donate(address _donor) public payable {
_preValidateDonate(_donor, msg.value);
uint GAS_LIMIT = 4000000;;
Donated(msg.sender, msg.value);

To proxy the actual payment to the intended charity address, we first attempted to use the“charity.send()” function, which works great if the charity uses a normal Ethereum account but fails if the charity uses a contract account for receiving donations. This is because “charity.send()” is reentrant-safe and only forwards 2,300 gas stipend to the next contract which makes the next one easily run out of gas. The “” function is the correct choice in this situation since it forwards a specified amount of gas to the next contract.

Though “” is much more powerful, it is non-reentrancy-safe, and if used incorrectly, it could easily lead to a Reentrancy Attack like the DAO attack back in 2016. To be safe, one has to either grab a mutex in the function which calls “” or mutate internal states, e.g., zeroing out the balance, before calling of “”. In our case, a reentrancy attack is not a concern since: a) our smart contract is stateless; b) we use the charity’s address rather than the sender’s address. In addition, we audited the charity’s smart contract to make sure it has no malicious code.

Watch Out for Donors

“All humans make mistakes” and the contract needs to watch out for our donors. Therefore, the contract is devised to validate every payment to:

  • Prevent non-whitelisted donors from donating, i.e., we imported ~2600 approved whitelisted addresses to the contract, only the payments from which are allowed;
  • Prevent whitelisted donors from donating at a wrong time, i.e., the contract only opens during 3/20/2018 5 PM PDT — 3/21/2018 5 PM PDT;
  • Prevent whitelisted donors from donating an unintended amount, i.e., the contract only accepts payment >=0.2ETH and <=1.0ETH and turns down the rest;
  • Prevent from receiving payments from too many donors, i.e., we capped the number of donors to 2600.

In addition, we’ve embedded a pair of admin-only knobs in the smart contract, namely pause() and unpause(), which can halt the smart contract from receiving payments under emergent circumstances, and resume that when needed.

In all, the validation condition for donation is coded as below.

function _preValidateDonate(address _donor, uint256 _weiAmount) internal {
require(now >= openingTime && now <= closingTime);
require(donors.length <= maxNumDonors);
require(_donor != address(0));
require(minWeiAmount <= _weiAmount && _weiAmount <= maxWeiAmount);

The development of this contract follows the standard software engineering flow strictly:

  1. High coverage by local unit tests;
  2. Functional and load testing in Kovan testnet of Ethereum;
  3. Canaried in the mainnet of Ethereum and dogfooded by the team;
  4. Released for the campaign.

Finally, we open-sourced our smart contract on GitHub. Please feel free to send us a pull request if you see a way to improve it!

IoTeX Charity Program I — Update: Why Charity?

Connecting the physical world block by block is a very ambitious goal, and we cannot make it happen without a supportive community. We want everyone in our community to be proud of being part of this journey, do our part to push the frontier for the development of the blockchain ecosystem, witness the technology evolve from 0 to 1, and ultimately improve our lives.

Here at IoTeX, hosting a charity program is a bold attempt, and picking “the right” charity organization is not an easy task. IoTeX strongly believes that we can advance the entire blockchain industry through rigorous research and collaboration, and we should financially support young professionals so they can focus on their research. The ETH Foundation does exactly what we value, which is why we choose them and asked our community to help us promote our cause.

Donation Overview

We have received tremendous responses from the community to help fund the blockchain research. In just a few hours, the charity program whitelist registration applications exceeded our goal of 3,000 applications. With gratitude, we closed the sign-up channel much earlier than planned. After the verification process, there are about 2,500 participants approved to proceed with the donation process.

During the 24 hours donation period, our smart contract has successfully supported 1,515 donors with a total of 340 ETH donations to ETH foundation! You can check the donation detail here: All donations went directly to the ETH Foundation and promptly helped the talents and the brightest minds continue their research without worrying about funding and give them a boost to discover the next breakthrough around the corner.

Charity Program Statistics and Comments

During the Charity Program donation process, we received many great responses and comments from our supporters, which give us huge confidence to carry this vision together with our community and to bring the blockchain into the physical world step by step! Thanks to our beloved community, the charity donation campaign has been a great success! Let’s take a look at some of the charity program statistics.

Source: Tableau Interactive Dashboard

Source: Tableau Interactive Dashboard

Impressive comments of “How did you know IoTeX?”

:unicorn: Douglas30

“It develops blockchain technology that is meant to scale up for higher and wider purposes than current blockchain does. Also, the team is stellar, looking forward to IoTeX’s next breakthrough development.”

:unicorn: Dr. MSc. Panagiotis Mentis

Coinfreak Chat Telegram Group. The first reason to invest in IoTeX is the personal desire of acquaintance with innovating high tech technology. During my Ph.D. at the University of Bundeswehr (Munich, Germany) in 2003–2006, under sponsorship and scholarship by Siemens, I implemented a Telecomms equalizing and simultaneously decoding algorithm, nationally & worldwide patented by Siemens Corporate Technology AG as “Mentis-Schaffler decoder”. It’s widely being used today in modern mobile GSM 4G P.P. Standard as well as satellite communication. The main reason for its adoption is the achievement of optimum SNR per bit Signal to Noise ratio, better than GSM’s, which was considered absolutely supreme at the time! Thus, I am excited about a new project, which will implement a different architecture & approach in blockchain technology. As an engineer, I find this particularly exciting!

The second reason for desiring to invest in IoTeX, is the willingness to own the best cryptocurrencies in a long term basis. I am a crypto-enthusiast, and I would not forgive myself if at least I did not try to participate in the project.

I am the founder and owner of a small chain of private schools and publishing companies in Athens, Greece. Our “Mentis” schools, are the first and yet the only ones in Greece that started to accept tuition fees’ payment in cryptocurrencies! Bitcoin, Ethereum, Neo, Icx, Eos. If I get selected, our schools would be the first to accept fees and payments in IoTeX currency as well! You have now my writing assurance of that.

Being owner and manager of these schools, I aspire many of my tech-loving teenager students, as to the benefits of cryptos and especially Blockchain 3.0, that is IoTeX. If I get selected, and mainnet runs as planned, I can encourage a lot of my students to accumulate IoTeX.

:unicorn: Coolgirl

“Because this is the first project that uses charity to help this world better, which I think is a good idea.”

:unicorn: Mylo

Found about IoTeX through the Crypto/blockchain community. Your project has the potential to change the way we interact with technology and will drive further development of technology and change the way we live forever. Unlike many other projects, you are looking at more than “just raising money” and building a solid community around your project.

:unicorn: George Varghese

Learned about it from telegram group and read the white paper and mission and am very pleased and supportive of this project. As a medical practitioner, I personally see the benefits of charity and humble giving of our time, talent, and treasure. It’s a privilege to be part of something has revolutionary as IoTeX and still help the world be a better place.

:unicorn: AhmadC

Following trending telegram channels. Because I believe that the current crypto market hype does not fulfill the ultimate objective (most investors today are currently speculators) and this will eventually fade. Current leading cryptos will be replaced by a handful that fulfill the larger objective of a decentralized stable store of value and decentralized utility, like what IoTeX is trying to accomplish.

:unicorn: Shahmeer Chaudhry

“Love blockchain and future technologies, IoTeX seems to be revolutionary and I want to be a part of the change in the world. I believe that the biggest issue in Blockchain today is the lack of real-world usage even though it can be applied in so many ways. IoT can reshape our society and is of the premier use case of Blockchain.”

:unicorn: Dinh Quang Ngoc

“I know IoTeX through Icodrops and some social media like Twitter, Medium, etc. I am interested in IoTeX because this is the latest decentralized network for IoT, it can be solved scalability problem and privacy is a network of many blockchains that are hierarchically arranged. In addition, cross-blockchain transactions are supported to transfer value and data from subchains to rootchain. These are all new things for a renovation.”

:unicorn: BoA

“Word of mouth. The charity concept is interesting as it will help a lot of people.”

:unicorn: Kolawole O Ebunlomo

“I got to know of IoTeX through I’m interested in the Project first as a Blockchain enthusiast who is naturally inclined to support in every way possible, projects that dares to stretch the frontiers of Blockchain and provoke mainstream adoption; conditions I’m content IoTeX satisfies. Furthermore, I’m particularly fascinated by the unique and stellar features that IoTeX sets out to achieve as I’m convinced that the project’s ambition supersedes all other alternatives that currently exist within the Internet of things (IoT) space. More importantly, I repose the highest level of trust in the ability of IoTeX all-star-team to actualize this great project. ”

For most of us, blockchain technology introduced itself through cryptocurrency, and the monetary properties do have created overwhelmed hype and excitements. At IoTeX, we believe the real fortune has yet to be discovered: the cutting edge blockchain-in-blockchain architecture will address the scalability, privacy, isolatability, and developability issues relating to the IoT DApps and ecosystem growth. With the understanding and support from this amazing community and our dedicated work to create the next generation of the IoT-oriented blockchain platform, the golden age of blockchain technology is on the horizon.

IoTeX Charity Program II: DoraHacks

In March, IoTeX’s first charity program which supported the Ethereum Foundation was met with a tremendous response from our community. We raised over 340 ETH to help fund blockchain research and gave out almost 3 million IOTX to our community — thank you to all that donated to this great cause! While our first charity program supported the pioneers of blockchain, we want our second charity program to foster the next generation of blockchain and IoT developers. That is why we are excited to announce our next donation recipient: DoraHacks!

Why DoraHacks?

DoraHacks is the largest hackathon organizer and hacker developer community in China and has expanded its footprint in 2018 to 10 countries, including the United States, South Korea, Japan, England, and India. To date, DoraHacks has organized more than 100 hackathons in seven cities around the world, with more than 5,000 core hackers and 200,000 global developers in their community. DoraHacks has provided a platform for developers of all skill levels to create more than 1,000 applications in their hackathons, and their hackers have gone on to start and lead various blockchain startups, such as ProChain and CorTex — and they are just getting started.

We believe that donating to DoraHacks is a great way to support a wide range of future blockchain and IoT enthusiasts, including students, academics, and industry representatives. At IoTeX, we are focused on the long-term success of our blockchain and used this long-term focus as a criterion when selecting our next donation recipient. Similar to IoTeX, DoraHacks is still growing and looking to replicate its highly impactful hackathons in countries all over the world. We trust and align with DoraHack’s mission, and are excited to see what the future holds for DoraHacks and their hackers.

How will the donations be used?

Using the donations from IoTeX’s charity program, DoraHacks will support and fund the development of blockchain and IoT-related projects in their hackathons. For context, DoraHacks provides a list of topics/use cases to their hackers to choose from and provides monetary / cryptocurrency rewards to hackers that successfully complete the chosen project within the 24-hour hackathon period. As DoraHacks hackathons are not entirely blockchain or IoT-focused, we will only allocate our donations to hackers that work on blockchain and IoT projects. For each hackathon, IoTeX will submit a set of blockchain and IoT topics/use cases, and hackers who choose these projects will be rewarded upon completion from the IoTeX charity program pool. Simple, right? That’s not all!

The best part is DoraHacks will provide transparency and traceability of which hackers /teams received rewards from the IoTeX donation pool. DoraHacks and IoTeX will publish and update a list of all hackers/teams that receive donations, and will even provide a link to the Github code of each project. This means that you will be able to see exactly where the donations go and know that the donations are used for the original purpose — to promote the next generation of blockchain and IoT developers!