Announcing the Vortex Testnet Competition

Amosity
Blockzero Labs
Published in
8 min readDec 11, 2021

Important announcement

  • The current Vortex Testnet Competition will end early at 12:30AM UTC 15 Dec, and rewards will be calculated pro-rata for those who participated
  • We will launch Vortex Testnet Competition 2 in the coming days

Thank you to everyone who participated in the Vortex Testnet Competition to date. During the competition, we have encountered frontend performance issues due to the sheer number of portals created (over 5000). This was a function of the competition criteria to “create the most portals”. This was a good stress test for the dapp. However, we need to ensure the dapp continues to be useable for testing, so we will reset the dapp for the next competition.

Users from Competition 1 will need to re-register to Competition 2 if they wish, and all reward calculations will start from scratch (no carry over from Competition 1).

We will calculate and distribute rewards pro-rata to registered users who received testnet tokens, being 2/7 days — so the same proportion of the $12,500 rewards will distribute. These results will become available in the coming days. Please stay tuned for details of Competition 2.

All details below are no longer valid and just remain for historical reference.

Prize pool: $12,500 XIO

We’re excited to announce the Vortex Testnet Competition!

The Vortex is at the center of the Blockzero Universe and allows XIO holders to earn yield generated in our space exploration (such as funds from projects). This is achieved by staking tokens— such as XIO or XIO-LP tokens — into a selected portal that distributes rewards block by block. Users can harvest their accumulated rewards at any time (once a minimum threshold is met) from each portal staked into.

The goal of this competition is to ensure the functionalities of the Vortex are working as intended. By assessing the results from the Testnet contest, we will be able to verify that:

  • The dapp has no functional issues
  • Vortex Portals can be created successfully
  • Tokens can be deposited into the Vortex Portals
  • Staking tokens can be staked to earn yields from the Portals
  • Portal rewards can be claimed successfully
  • Tokens move in and out of portals correctly

Future iterations of the dapp will be considered to improve/increase available features. As released to testnet, this dapp is the Minimum Viable Product (MVP).

The Vortex Testnet Competition will run for 7 days. It will start on Monday December 13th 5PM UTC and finish on Sunday December 19th 5PM UTC.

📝 Register

To register for the competition:

  • Visit #🌪vortex channel (pinned messages) in our Discord for registration instructions
  • You must whitelist your Ethereum wallet address, and share your contact details: https://blockzero.typeform.com/to/gsrVmwHk

On successful registration, we will deposit test tokens into your wallet by 10PM UTC each day (or the following day if you registered after 10PM).

You can enter the competition anytime up to December 18th 9PM UTC. Remember, entries will be reviewed and wallet addresses whitelisted / tokens deposited once per day by 10PM UTC.

🔬 Test Cases

A list of suggested test cases is below. Ensure you are connected to the Rinkeby network.

During testing, we recommend you take screenshots of your inputs or take notes, for easy reference later, such as what distribution limits were applied at portal creation.

The Vortex dapp can be accessed here:

You will need some Rinkeby ETH in your wallet for gas to execute transactions (0.1 ETH should suffice). You can receive test ETH from the faucets below:

Test Cases:

A. General testing of the dapp

  • Successfully connect/disconnect wallet to the dapp
  • Field inputs and buttons work as intended
  • Data display correctly across the dapp (both static and dynamic)
  • Mobile responsiveness of the dapp
  • Social links work correctly

Notes:

  • After pressing the CREATE PORTAL / DEPOSIT / STAKE buttons for the first time, there will be at least 2 transactions to approve in the connected wallet — the first is to approve use of the token (one-time approval per portal), the second is to execute the relevant transaction (create / deposit / stake). This process duplicates for each reward token added per portal.
  • Ignore the test logos next to tokens, these will be corrected once the dapp is on mainnet.

B. Create new portals

  • Successfully create a new portal with the relevant staking token and reward token/s
  • Naming convention of the portal is generated correctly (see notes)
  • Inserted token addresses are validated correctly, with the correct name (note, Rinkeby does not produce the token logo accurately, so this is out of scope)
  • Minimum Reward Ratio and Distribution Limits are correctly set

Notes:

  • Portal names are auto-generated with the naming convention: Portal [portalnumber] [Rewardtoken1] [Rewardtoken2]…
  • Staking tokens are whitelisted and therefore only approved staking tokens will appear in the Staking Token drop-down — for the purposes on testnet, only XIO and XIO LP tokens will be whitelisted as staking tokens
  • The Minimum Reward Ratio is the minimum reward per block, to ensure the reward per block doesn’t fall below this value / sufficient reward tokens are deposited. Example: if the minimum reward ratio is 1, you can add 100 tokens for 100 blocks but you cannot add 99 tokens for 100 blocks because it will fall below 1.
  • The Stake Limit is the maximum stake amount the user can stake. Example: if the stake limit is 1000, the sum of all user stakes cannot exceed 1000 tokens.
  • The Contract Limit is the maximum stake amount for the selected portal. Example: if the contract stake limit is 500, the maximum stakes among all users cannot exceed 500.
  • The Distribution Limit specifies the quantity of staked tokens needed before rewards start accumulating for all stakers. Example: if the distribution limit is 300, rewards don’t start accumulating for stakers until a minimum of 300 tokens are staked.

C. Deposit tokens into portals

  • View list of created portals
  • Deposit tokens into the selected portal
  • Successfully approve use of tokens (one-off approval for selected portal)
  • Successfully create portal and view transaction in Dashboard

Notes:

  • Refresh your browser if you do not immediately see a new portal you created appear in the portal list (it may take several minutes depending on network speed)

D. Stake XIO or XIO-LP tokens for portal rewards

  • View list of available portals to stake into
  • Select preset token quantities or input a manual quantity
  • Successfully stake staking token into selected portal and view transaction in the Dashboard
  • Successfully unstake selected stake in Dashboard

Notes:

  • The APY data is not accurate and is still being worked on
  • Refresh your browser if you do not immediately see newly created transactions in the Dashboard (it may take several minutes depending on network speed)

E. Claim portal rewards

  • View list of portals staked into
  • Claim rewards and view transactions in the Dashboard

Notes:

  • Refresh your browser if you do not immediately see newly created transactions in the Dashboard (it may take several minutes depending on network speed)

KNOWN BUGS

As at the release of the testnet dapp, there is a known bug related to Unstakes which is actively being fixed:

  • In the STAKE Dashboard, we have had to temporarily remove the Unstaked Date for any stakes already unstaked. This is because it appears in error in some cases (instead of showing “Staked Date”) and the backend data requires a fix.
  • Related to above, the UNSTAKE button is temporarily enabled in all instances, even though it should dynamically be disabled where a stake is already unstaked. This means if you select a stake (which you may not realize is already unstaked), when you press UNSTAKE and try to confirm in MetaMask, it will throw an exception error, as that stake is likely to already be unstaked (you should be able to verify as the original deposit amount would have returned to your wallet in the original unstake transaction).

💎 How to Win

There are 3 ways you can win rewards:

  1. Scavenge for points
  2. Search for frontend bugs
  3. Search for smart contract bugs
  1. Scavenge for points

There will be $2,500 XIO rewarded across the most points earned across the various activities below.

Prizes:

  • $1,500 1st place overall
  • $750 2nd place overall
  • $250 3rd place overall

Each activity will have a 1st, 2nd, and 3rd place, with each earning 3 points, 2 points and 1 point respectively:

  • Most portals created
  • Most variety of reward tokens inside a portal*
  • First person to claim all rewards inside a portal (as available to everyone; rewards token balance inside portal is 0)
  • Most number of stakes
  • Most number of unstakes
  • Highest quantity of staking tokens staked in a single portal
  • Highest quantity of staking tokens staked across multiple portals
  • Most quantity of rewards claimed across one or more portals (tokens must remain in registered wallet)

*We will send whitelisted addresses the following Rinkeby tokens to aid in testing:

  • 100,000 XIO
  • 5 UNI-V2 XIO/ETH (XIO-LP)
  • 50,000 DAI
  • 50,000 FLASH
  • 50,000 WETH
  • 50,000 UMA
  • 50,000 USDC

To see the tokens in your wallet, please import the following token addresses:

  • XIO 0x7Ba01df9f4b9CFa257d1952aa01Bc5F9BFc2f354
  • UNI-V2 XIO/ETH 0x3adabebc498812a68533452a82fa1f4dcf6531c9
  • DAI 0xE0bCABCaFa2576a235d79B679CEebdad8dA42eAB
  • FLASH 0x639874FbF2DE72002438e28048Faf81e075fce04
  • WETH 0xF9FC8385cDEe600949a7C08E3B1D593A286c4f54
  • UMA 0x26B0053491dF285ccEf74c061Ab0dAD88035233a
  • USDC 0x4f62BCcfEA087171DeAC1d453C84ffC88F9486F3

You can create additional ERC20 tokens to generate multiple reward tokens if you wish, using sites such as this token builder (or any suitable alternative): https://www.createmytoken.com/token-builder/

Note: You can only register once to the competition (single wallet, Twitter, email). We will only send test tokens to the first wallet registered. If we see testnet tokens being sent to unauthorized addresses except the addresses in this Medium article, those wallet addresses will be invalidated from rewards.

Preset Portals

We have also created 3 preset portals to test different configurations. You can also stake into these portals for testing.

  1. Portal 0 XIO (staking token — XIO) — This portal has 5.5M XIO available as rewards to simulate the staking of XIO tokens
  2. Portal 1 XIO (staking token — XIO) — This portal has 50,000 XIO available as rewards, to test what occurs when rewards run out (assuming enough stakers participate)
  3. Portal 2 XIO (staking token — XIO) — This portal has 50,000 XIO available as rewards ending mid-way through testnet, to test what occurs during an shorter reward period and/or rewards run out (assuming enough stakers participate)
  4. Portal 3 XIO (staking token — XIO-LP) — This portal has 2M XIO available as rewards to simulate the staking of UNI-V2 XIO/WETH (XIO-LP) tokens

2. Search for Frontend Bugs

There will be up to $2,000 XIO rewarded for any frontend bugs submitted and accepted during testnet. Frontend bugs are ones that render an expected functionality to be defective, and do not include cosmetic design issues or UX overflows.

Rewards will be split into the following tiers based on severity:

  • Low severity $50 XIO
  • Medium severity $100 XIO
  • High severity $200 XIO

3. Search for Smart Contract Bugs

There will be up to $8,000 XIO rewarded for any smart contract bugs submitted and accepted during testnet.

The Vortex smart contract:

https://github.com/BlockzeroLabs/vortex-contracts

The Vortex smart contract address:

0x94f46985a404F256efEeea1F5D92bB301dcb266e

Rewards will be split into the following tiers based on severity:

  • Low severity $200 XIO
  • Medium severity $800 XIO
  • High severity $2,000 XIO

KNOWN ISSUES

There are currently known issues in the smart contract which will be resolved and therefore will not be accepted as bug submissions. These relate to:

  • Portal addresses emitted as events in the smart contract that can cause higher gas
  • Redundant functions relating to stakingToken, endBlock and totalStaked

Rules for all frontend and smart contract bug submissions:

You can submit as many bugs as you find but each bug must be submitted individually using this Typeform:

https://blockzero.typeform.com/to/smlQx7hK

Only submitted bugs will be considered during testnet (we will not review on-chain transactions). Feedback for optimizations/improvements will not be considered bugs.

Severity of submitted issues will be judged by the Council and all decisions are final.

Disclaimers

  • Participants have until December 19th 5PM UTC to submit bugs.
  • Bugs are rewarded on a first-come first-serve basis. This means, if two people submit the same bug, the person who submitted the Typeform first will be the only person eligible for compensation.
  • Not all bugs will be treated the same or given the same compensation.
  • Bugs discovered that would result in a loss of funds on the Protocol will be judged with higher Severity Scores.

Competition winners will be published in Discord and rewards will be distributed as soon as possible after results are final.

For any support questions, please direct them to the #🌪vortex channel on our Discord: https://discord.gg/w3pgm7R6

--

--