Contract: 0xa8c1fc111d554c291c495a2be71ba58edea208d0
https://andrewmitchell-art.xyz/art/nokori.php
All artworks are constructed purely with string concatenation. No 3rd party libraries or HTML <canvas> elements are used at any point.
Nokori is a collection of fully on-chain, EVM-generated artworks rendered with SVG and CSS. Each piece includes two components: an SVG image and an HTML animation, both built entirely in Solidity. The animation includes embedded vanilla JavaScript to dynamically append additional textures to the SVG.
Nokori means remnants, what remains after everything else is gone. I have spent years on this project, building it up, scraping it down. Nothing is left but the work itself. I will probably still look back and see things I wish I could change. That is okay. Nokori can also mean regret. Oftentimes I avoid this feeling. It is hard not to feel further and further from myself as the days pass. Is that a form of regret? Maybe. Sometimes I catch myself moving too fast, heart racing, almost manic. It is unhealthy to live on what feels like borrowed time, rushing between states of working, sleeping, relaxing, etc. It is better to move slowly, because at least I am then living on my own terms.
Working on Nokori has helped me navigate the highs and lows of the last few years. The cracks and threads carry something unspoken. I have tried to give the impression that the pieces were always meant to be worn down as if time itself has left its mark on them.
Shuffle Hash: Within 2 weeks of minting, token owners can regenerate their artwork by calling shuffleHash(tokenId). This generates a completely new random hash, resulting in a different artwork. Use canShuffleHash(tokenId) to check if shuffling is still available and how much time remains.
Keyboard Controls: Use arrow keys to pan around the artwork. Press + to zoom in and - to zoom out. Press '0' to reset.
Context Menu: Right-click on the artwork to access options for downloading the SVG or viewing the source code.
Display Settings: Owners can adjust how their artwork displays on different devices. Visit the Nokori contract on Etherscan, connect your wallet, and use these functions:
setAlwaysUseCachedAnimationOnId(tokenId, true/false)- Always show a static image instead of the live animationsetAlwaysUseCachedAnimationForMobileOnId(tokenId, true/false)- Always show static image only on mobile devicessetAlwaysUseCachedAnimationForSafariOrIOSOrFirefoxOnId(tokenId, true/false)- Always show static image only on Safari, Firefox, or iOSsetAlwaysShowPotentialWarningPopupOnId(tokenId, true/false)- Display a warning popup for browsers that may have compatibility issuessetTokenAnimationCacheOnId(tokenId, prefix, suffix)- Set a custom animation cache URL for your tokensetTokenExternalUrlOnId(tokenId, prefix, suffix)- Set a custom external URL for your token
To check your current applied settings call getTokenVisibilitySummary(tokenId).