We are overdue for an art revolution. Watching the NFT space evolve has been something that has often left me in awe, but I felt I still needed to create something to contribute. Avastars pioneered the first fully on chain SVG art, and Squiggly was born to introduce the world to a new gamified minting/creation system, while also maintaining the on chain purity I loved about the Avastars. While other projects this year (PixelChain, ChainFaces) have pushed for immutable storage of art, I felt the additional resolution with SVGs allows for much more interesting art designs.
I learned fairly recently that art can be bigger than just the art itself. The broader goal of this project is a new extension of art, the Smart Contract Art Project (SCAP). The idea is that SCAPs are more about the experience as a whole rather than just the underlying art created. Smart contracts allow all sorts of new mechanics to be introduced into the buying/trading experience, and "you had to have been there" will be a common statement shared by the people who were part of the origination of a SCAP project. All auction winners will of course be left with immutable, generative SVG art pieces that will last as long as the Ethereum network keeps running. However, the art sale and auction mining experience will only live in the auction participants' memories.
Initially when I began creating this project, I was not planning on putting a ton of emphasis on the actual art. The element I sought to bring to the table was the unique creation mechanics. I'm glad I grew past that.
Maybe This Is Art Phase
After some more experimentation, I discovered fills looked so much better than stupid little lines. This is where I realized I might actually be able to make some interesting looking generative art.
Yep This Is Art Phase
I was proud when I reached this milestone. This is definitely art. Originally I was happy to launch this as the final phase, but as I was still tweaking the smart contract, I couldn't help but experiment further.
The limitations in solidity are well documented, and I never thought I would reach this resolution for generated pieces. The most "dense" squiggly is the q Curve with over 1500 randomly generated points.
How It Works
There are 3 phases to a Squiggly auction: Start Auction, Auction Mining, End Auction. These three phases will play out over the course of the art sale for each token until all 100 NFTs have been minted. The price on an ink cartridge is calculated dynamically before each auction, adjusted based on the demand of the previosu auction mining round.
Start Auction: An auction begins whenever the start auction function has been called. As an incentive to cover gas cost, the caller of the start auction function will receive 2 ink cartridges in the newly initiated auction. Anyone can call the start auction function as long as the auction is not currently live.
Auction Mining: After an auction has been started, a 1000 block timer is initialized. While an auction is in progress, anyone can purchase ink cartridges for the calculated ink price. There are 100 ink cartridges in every auction, sold on a first come first served basis. If there are only 10 remaining ink cartridges, you will not be able to purchase 11 because the maximum slots per auction is 100. When the block timer expires, the auction concludes and moves into the End Auction Phase. Alternatively, if all 100 are sold before the timer ends, the auction is complete and thus proceeds into the End Auction Phase.
End Auction: As stated above, an auction is over when the block timer expires or if all 100 ink cartridges have been purchased. While this concludes the the Auction Mining Phase, the burden of gas cost falls upon the End Auctioneer. The caller of the end auction function gets credited as the token creator and is rewarded with a 15% dividend from the corresponding auction sale. Approved auctioneers can call the end auction function as long as the auction mining phase is complete.
NFT Auction Winner: When the end auction function is called, a winner is randomly selected from the current round of ink bidders. A bidder's win probability is proportionate to their current ink in the active round divided by the total ink sold in the round before the block timer expires. For example, if you own 25 ink in a given round, and that round concludes at 50 total ink sold, your chances to win that round's NFT is 50%.
Dynamic Ink Pricing: The price of an ink cartridge is calculated dynamically after the conclusion of every auction. If there are more than 80 ink cartridges sold, the price will adjust upwards by 1% for the following auction. If there are less than 60 ink cartridges sold before the block timer expires, the price will adjust downward by 1% for the following auction.
Distribution Of Funds
Developer - At Every Ink Purchase
End Auctioneer - At End Of Auction
Lucky Bastard Award - At Every Ink Purchase
Twitter/Discord Promo - At End Of Auction
Reward: 2 Ink Cartridges
This reward is given to the caller of the start auction function.
Reward: 15% Of Auction
This reward is given to the caller of the end auction function. Gas costs are high and this will be a computationally expensive transaction. Only approved auctioneers can call this function.
Lucky Bastard Award
Reward: 10% of Last Ink Sale
The Lucky Bastard reward is randomly given to a current holder of a Squiggly NFT upon every ink purchase. For example, 0.2 ETH of ink is purchased in a single transaction, and a lucky holder of an NFT will received 10% of that purchase.
Reward: 10% of Auction
The top 10 twitter promoters and the top 10 discord promoters will have their addresses added to the contract to be paid upon the conclusion of every Squiggly auction. This will be a living leaderboard that is updated throughout the art sale.
The total supply of Squiggly NFTs is limited to 100.
There were 100 ink cartridges per NFT, and the winner of the NFT was selected from one of these ink cartridges randomly. A bidder's win probability was proportionate to their current ink in the active round divided by the total ink sold in the round before the block timer expired. The squiggly generator shut down after ID #99 was minted.