Last week was a busy week indeed, from deploying our smart contract to the test network to dealing with requests following the audit. With support of our partners coinhub.io, distribution of the new token is now in reach. Our co-founder Aleks visited the Crypto Currency Investor Summit in Ljubljana, Slovenia, to spread the word about Crowdholding. This is an incredibly important step, as both the YUP token and Crowdholding itself depends on a substantial audience to succeed.

On the business side, we have onboarded two more businesses to our app — Soolox and Repux — and added five more to our waiting list.

Why a waiting list you may ask? CH is monetizing crowdsourcing, thus our colleagues must work with the business to support their needs individually in the beginning. In addition, the product needs to be ready when we ignite the engine, meaning once our token is distributed and on an exchange, API’s begin working and real tokens begin moving in our system. This means token movement begins and people receive crypto in return for their feedback. Truly monetizing crowdsourcing at it’s finest. Over piling the business at this stage can result to overscaling, so we need to test and grow according to our capacity and speed. Thus, our waiting list has begun, but we do shoot for two startups a week to onboard at this stage to continue steady growth.

Let’s dive into the tech of the Smart Contract.

After careful consideration in regards to the new smart contracts, it was decided that it is best to have a regular ERC-20 (StandardToken) contract for the new YUP token, accompanied by two additional contracts: one for locking, and another for vesting. As for the long-awaited “upgradeable smart contract”, all the work done will form the basis of the (upgradeable) architecture of our future DApp, that will be used later instead of deploying it right now (described in exhaustive detail in a later, separate article).

The main factors behind this are: security considerations, time constraints, and gas costs. Before we continue with the more detailed breakdown of each reason, we’d like to thank you for your continued support and patience. The experience gathered during the last few months turned out to be invaluable for the theoretical and practical understanding of the intricacies of blockchain development on Ethereum.

Security

All the developed contracts are heavily based on OpenZeppelin — a framework for building secure smart contracts on Ethereum. The main benefit of relying on OpenZeppelin is that all of the published code is carefully vetted by experts and Ethereum’s developer community. In addition to that, reusing their code allows us to adhere to the following security patterns:

Fail as early and loudly as possible (note: at the stages of development/testing)

Favor pull over push payments

Order your function code: conditions, actions, interactions

Be aware of platform limits

Write tests

Fault tolerance and Automatic bug bounties

Limit the amount of funds deposited (note: for handling Ether payments)

Write simple and modular code

Don’t write all your code from scratch

The locking contract works as follows: all crowdsale participants can claim their tokens when it transitions into the “claiming” state (after it is deployed and balances are loaded). Presale participants, on the other hand, will be able to lay claim to their tokens 3 months from the moment of the contract’s deployment. Additionally, the tokens reserved for future use will also be held in the same contract and will be claimed by Crowdholding after a compulsory period of 2 years. In total, the locking contract will hold 64% of all (new) Yupie tokens (45% crowdsale pool + 19% future use).

The token contract itself also boasts an additional security measure — emergency transfers pause, in line with the “include a fail-safe mode” Solidity security recommendation. This feature can only be triggered by Crowdholding, and only in the event of a major threat to our community. The rationale behind having it is to ensure enough time for an adequate security response, should the necessity arise.

Last but not least, the less complex the token, the less things can go wrong with it. This was one of the main reasons for deciding against having an upgradable token contract. Furthermore, one of the pillars of security and “trustlessness” in a decentralized blockchain environment is the absence of a deciding influence of any third party; once deployed, smart contracts are intended to be immutable (closed for change). However, this significantly hampers flexibility (e.g. being able to update code to fix a security bug). Hence, it was agreed upon that user balances should not be able to be changed by anyone, therefore the token contract should be immutable, simple, and trustless; instead, the DApp architecture should be upgradable and sophisticated.

Time

The upgradable contract architecture was finalized a few weeks ago. However, due to its complexity, unoptimised form, and high degree of innovation, there was not enough time for running comprehensive tests and getting it listed on exchanges by the end of February. Another factor further complicating things was that auditing companies we contacted had insufficient experience with upgradable smart contracts and required weeks to performing their audits. All of this lead us to favor a faster (and more secure) approach in the form of the three (standard) contracts.

Gas

Another important factor turned out to be gas consumption. As the developed upgradable architecture consisted of a set of contracts that called each other, the gas cost of a single operation (e.g. transfer) was much higher than that of a regular (ERC-20) token operation. For comparison: in the initial, unoptimized version of the upgradable smart contract a token transfer (to a regular (EOA) account) required way over 100,000 gas; whereas a regular ERC-20 transfer to an EOA costs exactly 21,000 gas. This was deemed unacceptable and resulted in the change of the course of action.

It’s exciting we are so close now, and and our application is increasing daily with user signups and participants. A good promotional launch on coinhub.io is also in preparation to let the people know we are available. Keep in mind, we are also actively making sure to scale on other exchanges in the future to make the Yupie token more available to public. Again we appreciate everyone’s patience while we build the business and prepare for the exchange.

Fixing problems & Buyback

Starting tomorrow (27th Feb), we will be reaching out to special cases from the people who purchased YUP from Etherdelta (not a good move, as tokens shouldn’t be traded yet) or used an exchange account (oops… don’t do that for ICOs!). If you have either of these problems and you did not get in touch with us, please do either via email hello@crowdholding.com, or via telegram to one of our admins. In addition, we have a few pre-ICO participants who were subject to an open refund policy, whereby their tokens will be put into a pool where people whose transfers did not go through for the ICO will be able to purchase the refunded YUP.

Log into Crowdholding and join the co-creation revolution or drop in for a chat with us on Telegram.