Guide to The Abyss DAICO Smart Contract

Dear all, it’s been a while since we presented you the first version of our DAICO smart contract. Over two months of hard working have resulted in adding new features, aimed at conducting even safer and more transparent DAICO, and removing some of the features that appeared ineffective. The project’s concept has evolved. And being its technical implementation, the smart contract has evolved respectively. We’re now presenting a guide to the renewed DAICO smart contract for your careful examination and consideration.

It is fully exposed on the Github, and is currently undergoing the audition by the independent reputable New Alchemy ($1 999 386 274 total market cap of their clients as of Apr 7, 2018). Below is a detailed description of how things will be working during the upcoming DAICO.

During The Abyss Token Sale (DAICO) the project will utilize five smart contracts:

Crowdsale (TheAbyssDAICO) contract. This smart contract is meant for crowdsale and will not be used after the end of crowdsale.

Fund (PollManagedFund) contract. This smart contract is meant for storing contributed ETH.

Tokens (ABYSS) contract. This is our main smart contract which will be operational after the end of crowdsale.

Reservation Fund (ReservationFund) contract. This smart contract is meant for storing ETH contributed by greylist participants.

Utility contract (LockedTokens). This smart contract is meant for locking the Company’s, Reserve and Foundation tokens for a certain time period.

The Tokens contract is created after the crowdsale is deployed. It is meant for generating tokens, which will be unlocked after the end of Token Sale.

Reservation Fund and Greylist

The Reservation Fund contract serves for storing the greylisted contributors’ ETH.

We added an opportunity to send ETH before the KYC/AML is complete. Such contributors are added to greylist after the transaction is made [view source].

If a person is not catching up with the KYC/AML procedure, but sends ETH during the bonus program period, his bonus is reserved as of the day of transaction. After he passes the KYC/AML successfully, he is redirected from greylist to the whitelist [view source], which means that his contribution is transferred from the Reservation Fund contract to the Fund contract. After this, both purchased and bonus tokens are accrued.

Processing of greylist payment

The Hard Cap comprises whitelisted participants’ contributions only. If a person fails to pass KYC/AML (or fails to pass it in time, or rather the Hard Cap is already reached), after the end of crowdsale he can make a refund and return his contribution [view source].

Refund of greylist payment

Crowdsale

When contribution is made, the contract verifies that its amount corresponds to [view source]:

Days 1

Days 2+

If contribution is made within crowdsale start-end delta time, the respective amount of tokens (with bonus tokens also considered) is generated by the Tokens contract, while ETH is sent and stored at the Fund contract. This scheme is operational until the end of crowdsale.

Processing of contributed ETH

Bonus program

During crowdsale bonus program will be operational, with bonus tokens generated by the Tokens contract.

Bonuses

The Tokens contract is created automatically after the start of crowdsale. It is meant for generating tokens, which will be unlocked after the end of Token Sale.

Crowdsale results

The crowdsale may result in failing to reach the Soft Cap level or reaching the Soft Cap level.

Soft Cap — not reached

If the project fails to reach the Soft Cap level (6M USD), tokens remain locked and can not be transferred from one user wallet to another

Soft Cap is not reached

Fund contract automatically switches to the CrowdsaleRefund mode, allowing contributors to return the raised ETH.

Crowdsale refund

Soft Cap / Hard Cap — reached

Raising the Soft Cap means the project either reached the Hard Cap (18M USD + 300 000 BNB), or not.

The total funds raised are verified so that the Hard Cap level is not exceeded [view source]. If the Hard Cap is exceeded, the transaction is reverted. On reaching the Hard Cap, the crowdsale stops [view source].

Tokens distribution

After the crowdsale is complete:

The BNB tokens are transferred to the bnbTokenWallet;

The referral program tokens are transferred to the referralTokenswallet;

The foundation tokens are transferred to the foundationTokenswallet;

The company tokens are transferred to the companyTokenswallet;

The reserve tokens are transferred to the reserveTokenswallet;

The advisors tokens are transferred to the advisorsTokenWallet;

The bounty tokens are transferred to the bountyTokenWallet.

The company, advisors, crowdsale, foundation and bounty tokens are distributed by smart contract as follows:

Token distribution

ABYSS tokens assigned to the Company will be frozen by the smart contract for a period of 2 year [view source]. Advisors tokens are not subject to vesting period and will be transferred to the project’s advisors after the end of Token Sale. ABYSS tokens assigned to Crowdsale include bonus and referral tokens. Depending on the number of bonus tokens distributed during crowdsale, the amount of referral tokens will range from 2.91% to 3.64%. ABYSS tokens assigned to the Foundation will be frozen by the smart contract for a period of 1 year [view source]. ABYSS tokens assigned for Reserve will be frozen by the smart contract for a period of 6 months [view source].

Finalizing of Crowdsale

Withdrawal of funds

After the crowdsale is complete, the Fund contract switches to the TeamWithdraw mode, allowing the project’s team to withdraw limited amount of raised funds periodically.

There are two ways the raised funds can be disbursed by the Fund contract to the developing team:

1. The first withdraw

There is a possibility for the Team to withdraw ½ of Soft Cap right after the end of crowdsale [view source].

These funds will be converted to fiat money. It is the project’s protection mechanism due to the high volatility of ETH price.

The first withdraw

2. Tap (wei/sec)

A reasonable maximum amount that team can receive from the Fund contract per month. The initial project’s tap, established by smart contract, is 192901234567901 (wei/sec) = 500 ETH/month [view source].The tap is meant for supporting the platform’s development process. If the tap is not disbursed, it keeps accumulating over time.

Tap withdraw

The tap increase poll [view source]

If the team needs more funds for whichever reason, it can launch a poll either for raising the tap.

Token holders can vote, depending on the amount of tokens they hold on their wallets (N, where N≠0), if they approve of the disbursement of extra funds or not.

Prevention (Proof-of-Stake algorithm) protocols have been included to protect against abuse by large token holders like exchanges. The weight of each Ethereum-wallet’s vote is limited by a certain amount of tokens [view source]:

The company, foundation and reserve tokens, that are locked by the smart contract, are not eligible to vote with because they are stored on the smart contract.

Voting for tap increase can be held on 10th day of each month [view source]. It is considered a success if “YES” votes exceed “NO”. The voting process lasts 3 days [view source], and starts immediately after initiation. To prevent the abuse of the system, the %, by which the tap may be raised at a time, is limited to 50% of the initial amount [view source].

After the poll is closed, votes are not accepted [view source]:

Checking time for Voting

The tap increase poll results are visible to all participants.

Quorum

The poll is considered fulfilled, if a certain quorum is reached (X% of TotalTokenSupply):

The first poll though requires no quorum (X%=0) [view source]. The required quorum for all subsequent polls is adjusted automatically [view source], and calculated this way:

If YesVoteTokens > NoVoteTokens, the tap amount is raised [view source]. Or vice-versa.

The Refund voting [view source]

Token Holders can refund the remaining contributed money if they deem that the project team shows unsatisfactory performance (failing to implement the project).

Prevention (Proof-of-Stake algorithm) protocols have been included to protect against abuse by large token holders like exchanges. The weight of each Ethereum-wallet’s vote is limited by a certain amount of tokens [view source]:

The company, foundation and reserve tokens, that are locked by the smart contract, are not eligible to vote with because they are stored on the smart contract.

The refund poll will be summoned once a quarter: more specifically, on July 1, October 1, January 1, April 1 of the respective year. The voting lasts 1 week, and starts immediately after initiation. The refund is available during 2 years (after the end of crowdsale), with the last refund poll starting on April 1, 2020 [view source].

Dates of Refund Poll

The refund poll is considered a success if more “Yes” than “No” and more than 1/3 of tokens (from total token supply) voted for refund [view source].

Minimum limit for Refund

If the refund poll is success, token holders should keep their tokens, and abstain from transferring them to another ETH wallet before the 1st day of the next month. In this case the poll will be considered accomplished. The token holder’s current vote weight will decrease if tokens are transferred. For example, if a person voted with 1000 tokens and moved 500 of them to another wallet, then his vote weight is reduced to 500 instead of 1000. Following this logic, if tokens are transferred before the 1st day of the next month, resulting in the tokens overall amount decrease below the level needed for a refund, then the refund poll fails [view source].

If tokens are kept till the 1st day of the next month, withdraw for the Team is blocked [view source], and the second refund voting is to be conducted within a month [view source]. If the second refund voting ends successfully, token holders can return the remaining funds. If failed, the withdraw for the Team is unlocked [view source].

This two-stage voting system is introduced in order to protect the project from token holders’ momentary (hasty) decisions caused by drastic changes in the cryptocurrency market.

If the refund occurs, after burning the company, reserve and foundation tokens [view source] the contributed ETH is returned [view source], with user’s tokens bought out at the rate of the day, calculated with formula:

Returning of remaining ETH

The refund poll results are visible to all participants.

The U.S. citizens and residents [view source]

Under relevant U.S. securities regulations, tokens sold to U.S. accredited investors will be frozen for a period of 1 year [view source].

U.S. tokens lock

Binance (BNB) tokens [view source]

We have additional Hard Cap for our Token Sale and it is nominated in BNB tokens [view source] with:

BNB tokens are not subject to vesting period and withdrawn to the wallet of the developing team after the end of crowdsale [view source].

BNB tokens contributions are not considered in the Soft Cap. However, in case the Soft Cap is not reached, there will be possibility to return BNB tokens to the wallets they were sent from without our intervention [view source].

The total funds raised are verified so that the Hard Cap level is not exceeded [view source]. If the Hard Cap is exceeded, the transaction is reverted.

Course for BNB will be set in a few days before the start of Token Sale depending on the ETH market rate [view source]. BNB tokens are accepted from the international (non U.S.) participants only [view source].

Conclusion

The Abyss Token Sale (DAICO) is scheduled for April 18, 2018 (14:00 UTC), closing on May 16, 2018 (14:00 UTC) [view source].

We believe that this system gives an unprecedented level of security, transparency and control, at the same time representing a refreshing development for an ICO practice that has produced so many fraudulent schemes.