The Abyss DAICO Voting System Explainer

One of the core elements of The Abyss fundraising model (DAICO), distinguishing it from numerous industry ICOs, is the voting system, which is 100% controlled by the DAICO smart contract. It is through a voting system that the team can raise its monthly budget (the tap) needed for supporting the platform development and other project purposes. Depending on the voters’ (token holders’) decision, the tap is either increased, or not. Additionally, the DAICO voting system allows token holders to start a refund poll in case the developing team fails to implement the project. With this blog post, we’ll give you a step-by-step instruction on how to vote for tap increase and the refund, and will also show how to create the refund poll using Etherscan and MyEtherWallet.

Chapter 1. How to vote for tap increase

The poll for tap increase is created by The Abyss Team. Token Holders can only vote either for or against it. The first thing you have to do is to check, whether the poll has already started.

1. Open TheAbyssPollManagedFund contract at Etherscan, and find the “tapPoll” line (normally the 38th line, not always though).

2. If the poll is active at the moment, the link to the poll’s address will be visible. Click on it (if the voting is inactive, the address is set to 0x00…00);

3. Copy the tapPoll contract’s address. After this, open MyEtherWallet and choose “Send Ether & Tokens” section.

4. Enter your credentials and unlock your wallet.

5. Enter the copied contract’s address. Set “Gas Limit” to 200000, “Gas Price” to 5–20 Gwei, while leaving the “Amount to send” field as 0.

6. Fill in the “Data” field, depending on how you are intended to vote.

“YES” vote data:

0x4b9f5c980000000000000000000000000000000000000000000000000000000000000001

“NO” vote data:

0x4b9f5c980000000000000000000000000000000000000000000000000000000000000000

In case you change your mind, you can revoke your vote. The vote revoke data is:

0x43c14b22

7. Check all the fields, press “Generate transaction” and Send it.

The Poll for tap increase can be held on 10th day of each month, starting from June 10, 2018. 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. The poll lasts 3 days, and starts immediately after initiation.

Chapter 2. How to create the refund poll

Each token holder can start the refund poll. This opportunity is available only once a quarter: more specifically, on July 1, October 1, January 1, April 1 [view source]. 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

1. To start with, open the PollManagedFund contract at Etherscan.

2. Copy the Contract’s ABI as shown below.

3. Go to MyEtherWallet and choose “Contracts” section.

4. Enter PollManagedFund address and Contract’s ABI in the respective fields.

5. Press the “Access” button and choose createRefundPoll in the menu below.

6. Unlock your MyEtherWallet and press the “Write” button to create the poll.

7. Set the “Gas Limit” to 5000000, “Gas Price” to 5–20 Gwei, while leaving the “Amount to send” field as 0, and generate transaction.

8. Wait until the transaction is mined. After this, the refund poll will be created.

Chapter 3. How to vote for refund

As in the previous case (the tap increase poll), the first thing you should do is to check, whether the poll has already started.

1. Open TheAbyssPollManagedFund contract at Etherscan, and find the “refundPoll” line (normally the 41st line, not always though).

2. If the poll is active at the moment, the link to the poll’s address will be visible. Click on it (if the voting is inactive, the address is set to 0x00…00);

3. Copy the refundPoll contract’s address. After this open MyEtherWallet and choose “Send Ether & Tokens” section.

4. Enter your credentials and unlock your wallet.

5. Enter the copied contract’s address. Set “GAS limit” to 200000, “Gas Price” to 5–20 Gwei, while leaving the “Amount to send” field as 0.

6. Fill in the Data field:

“YES” vote data:

0x4b9f5c980000000000000000000000000000000000000000000000000000000000000001

“NO” vote data:

0x4b9f5c980000000000000000000000000000000000000000000000000000000000000000

Again, in case you change your mind, you can revoke your vote. The vote revoke data is:

0x43c14b22

7. Check all the fields, press “Generate transaction” and Send it.

Chapter 4. Running the refund poll

The refund poll is considered a success if more than 1/3 of tokens (from total token supply) voted for it. If so, the smart contract switches to holdEndTime which lasts till the 1st day of the next month. During this period token holders should abstain from transferring them to another ETH wallet. Transferring tokens will result in decreasing the token holder’s vote weight and may lead to the total YES-votes reduction below the level needed for a refund. If this happens, the refund poll fails.

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.

If tokens are held, tap withdraw for the Team will be blocked (isWithdrawEnabled = false;). It means that the first refund poll is success. The date of the second refund poll can be found on Etherscan, line 35. Token holders will be given 24 hours to start the second poll, that will last 7 days, and in case of its success, funds can be returned.

Creating of Refund Poll

Finalizing of Refund Poll

After the second successful refund poll, tokens stored at companyTokenWallet, reserveTokenWallet, foundationTokenWallet, bountyTokenWallet, referralTokenWallet, advisorTokenWallet are burnt [view source].

Destroying Tokens

The remaining tokens are bought out at the rate of the day calculated with formula:

ETH is returned to the contributors, while tokens are burnt [view source].

Refund Process

Chapter 5. How to get a refund

1. Check that TheAbyssPollManagedFund is switched to refund mode. Find the 36th line (normally 36th, not always though) on Etherscan and make sure the refund is active (state = 3).

2. Read Chapter 4 once again. If all conditions are met, copy the contract’s address and ABI to your MyEtherWallet and press the “Access” button. Then choose refundTokenHolder, as shown below.

3. In the new popup window, set “GAS limit” to 200000, “Gas Price” to 5–20 Gwei, while leaving the “Amount to send” field as 0, and generate transaction.

4. After this, the smart contract will destroy all tokens on your balance and will return your share of the remaining contributed funds.

Chapter 6. Monitoring the poll

Both types of polls can be effectively monitored through MyEtherWallet.

1. Open MyEtherWallet. Choose the “Contracts” section, and depending on the type of the poll, enter either tapPoll (line 38th on Etherscan) or refundPoll (line 41st) contract’s addrress and ABI (link for tapPoll, link for refundPoll).

2. Press the “Access” button.

3. Choose the parameter you are interested in, and summon the respective function to check the info (f.e. “endTime”, “yesCounter”, “totalVoted”, etc.).

Conclusion

The Abyss DAICO voting system provides no privileges to the team’s wallets and no influence on the voting process can be imposed by developers. It was designed to ensure more transparent and safer fundraising model, compliant with and promoting the principles of democracy in crypto industry.

All our smart contact codes are available for your perusal at Github and Etherscan: TheAbyssDAICO, PollManagedFund, ABYSS, ReservationFund.

Also there is a complete guide to DAICO smart contract where you can get all information about how it works.

Best,

The Abyss Team