On-demand, on-chain, randomised generative art that carries collectible value and real power over the WhaleStreet protocol.

Dutch auctions occur every epoch (8 hours) for a deFi Key whose purchaser can either deploy their own dApp on WhaleStreet with zero code & earn revenue on the platform, or participate in the platform’s governance process.

Live at https://whalestreet.xyz/auctions, the Auctions let a user purchase a deFi Key using the $hrimp token. The first series of the deFi Keys are ArtBlocks NFTs, with on-chain, Generative Art created by the awesome PXQL. The deFi Keys come in 3 types of rarities namely Common, Rare, and Legendary. Their rarity is randomly determined at the time of purchase using Chainlink VRF.

NFT-powered revenue and governance

The rarity of the deFi Key determines the percentage of dApp revenue that would go into the WhaleStreet Treasury.

  • Common enables a 50% split between the dApp and the Treasury.
  • Rare lets dApp keep 75% of its revenue.
  • Legendary lets dApp keep 95% of its revenue.

The deFi Keys also enable governance, with weighted powers based on their rarity. For example, Legendary Key holders get to set / reset some of the core properties on WhaleStreet such as epoch duration and fee percentages, while Rare Key holders would have a softer power. Common Key holders would have Veto powers across dApps on the platform. We believe this is just one of the few ways to make the governance process as innovative as we can.

The Smart Contracts

The source code for the smart contracts can be found here.

The architecture comprises three main smart contracts:

  1. LinearCurveWithNegativeSlope.sol : Represents the Dutch Auction curve.
  2. VRFAuctions.sol: Initiates and sets the randomness of deFi Keys using Chainlink VRF
  3. RandomKeyMinter.sol: Whitelisted by the ArtBlocks platform to mint on-chain GenArt NFTs that represent the deFi Keys.

Nature of the auction

The auction takes place every epoch. During an epoch, if a purchase has not been made, the auction continues through to the next epoch. However, if a purchase has been made, the auction is deemed closed and no further purchases can be made in that epoch. Only one deFi Key can be purchased in an epoch.

Auction start and end prices

Within an epoch, the purchase amount of an NFT in an auction decreases linearly with time.

The end price for an auction in $hrimp is variable.

The start price is determined based on the epoch when the last deFi Key was purchased. Given Pi which represents the purchase amount at an arbitrary epoch Ei, the start price at epoch Ei+1 will be

PSi+1= 2 × Pi

If a purchase does not happen at Ei+1, then

PSi+n= Pi; n > 1

Calculation of the purchase amount

Given PSi which represents the start price at an arbitrary epoch Ei, the purchase amount Pi is computed according to the formula

Where minY is the minimum price in $hrimp, and ti is the time elapsed since the beginning of Ei