Today, most NFTs represent static assets. The immutability of its media and metadata is enforced either as a social agreement or through code. While this is sufficient for storing cultural artifacts designed to be unchanged (static art, music, writing, collectibles), there is a wide open design space for experimenting with dynamic onchain assets that continuously evolve their appearance, metadata, or state according to immutable rules.
Dynamism brings NFTs beyond static links and media, to behave more like software that responds to external factors. This creates new layers of interactivity around digital goods and media, enabling greater individual and collective expression, dynamic utility, and ongoing innovation around digital objects.
Dynamic NFTs can either be programmatic (reflecting algorithmic input) or interactive (reflecting user input). Dynamism is a feature that can cut across verticals depending on the intended use case.
We’ve witnessed a range of experiments across art, gaming, identity and reputation, the metaverse, as well as community and brand engagement.
Dynamic collections could be seen as a subset of generative art, which also includes “Parameter Input” multiplayer art where the mint time or minter address is used as a source of entropy, but the NFT itself does not update after mint. Dynamic art NFTs give collectors an ongoing sense of delight, and serve as a tool for multiplayer creation between artists and collectors as a new medium for collective storytelling.
Art that automatically evolves with time, lunar cycles, onchain state, or offchain conditions e.g. 720 Minutes by Alexis Andre, BURNER by crashblossom, Gaussian Timepieces by Takens Theorem, Finiliars by Ed Forneiles, Gazers by Matt Kane, Mutant Garden Seeder by Harm van den Dorpel
Art whose visuals collectors can directly influence e.g. Brotchain by divergence, Terraforms by Mathcastles, Shields by John Palmer, Async Art’s Forever Supper or Classic where collectors can change the layers that are displayed in the main artwork
Art with style options released periodically, with each release featuring new limited edition styles holders can opt to “convert” their NFT to e.g. Opepen
Besides serving as upgradeable assets in games, dynamic NFTs could serve as the canvas for gameplay, reflecting game state in its media and metadata. Coupled with digiphysical goods, the NFT could update based on IRL activity to unlock new consumer experiences.
Axies that win ranked battles earn Axie-bound Experience Points (AXP), which can be used to “Ascend” Axies. Doing so syncs offchain game progress onchain, raises the Axie’s level cap, and allows players to upgrade Axie parts.
Citadel Ships can be upgraded to increase its power, speed, and fuel efficiency. Each upgrade tier takes a different amount of time and raw resources (Ore) to complete. Part of the gameplay is for Pilots to plan their travels to asteroid belts to mine Ore, with each action and game state reflected onchain
Realm players earn $ANIMA tokens through staking and gameplay. These rewards can then be used to upgrade their Adventurers (character NFTs from Realm’s partner projects) and receive LootBoxes that contain rare game items.
“Moves” are onchain transactions that affect a world e.g. Straylight
Battle Arenas where gameplay leaves a mark on the media e.g. Chainfaces Arena
Self-playing games using onchain AI where collectors can seek the highest scoring NFTs e.g. ArcadeGlyphs by Miragenesi
Avatar rarity hunting and community participation e.g. Manny’s Game
NFTs eat, infect, boost each other to get more powerful e.g. Etholvants & Booster Syringes
Dynamic NFTs can also proxy some identity and associated reputation within a community, evolving with ongoing contributions and governance activity. This fosters intentional interactions within and between communities, and serves as a foundation for social games to be built on top.
Lens v2 includes out-of-the-box support for the tokenbound (ERC-6551) standard, giving each Lens Profiles NFTs their own smart accounts. This decouples the Profile from its holder, accruing access rights, assets, and reputation to the NFT itself.
Social Contracts by Burak Arikan trace their collectors’ holdings and their shared connections to other collectors, generating a collection graph to project future acquisitions
JPG Canonicons artwork represents a unique, cumulative representation of an individual’s involvement in the curation of Canons. Similarly, Deca Decagons level up by consuming Deca Experience Points (DXP) individuals earn by completing daily Quests on the platform
Land that holders can directly influence and overwrite media onchain e.g. Terraforms by Mathcastles
Virtual fashion NFTs that can be converted between 3d wearable and artwork e.g RSTLSS
Large brands have experimented with dynamic NFTs to engage with a mainstream audience, connecting the asset with external data or adding utility through ongoing campaigns.
DeGods unveils new artwork and traits to its PFP collection every season. Holders spend $DUST to upgrade their NFTs, and can choose which metadata they want displayed. Staking DeGods accrues more $DUST to the holder and DePoints to the staked NFT. DePoints can be spent in-game to open Packs that contain $DUST or brand-sponsored rewards, with a leaderboard of DeGods that earned the most points for the current season.
Smolverse holders can stake their characters and earn IQ or Plates (depending on the character), which represents the time spent in the community and dynamically upgrade the characters’ head and body size. IQ can also be spent on aesthetic items, which are then added to their traits onchain. They will soon launch equippable ERC-1155’s to replace on-chain existing traits rather than just use them a skin, allowing the community to evolve the official collection collectively with the team.
LaMelo Ball collectible sports cards have ‘level up’ capabilities based on the outcome of real life basketball data, like a Rookie of the Year announcement. As the player’s career evolves, so will the collection with dynamic integrations to stats and milestones
Lacoste UNDW3 tracks community participation in "The Mission", a new experience revolving around conversation, gamification, quest-solving, and co-creation
Passive - updates autonomously, objective
Interactive - direct influence from owner, subjective
Opt-in Reveals e.g. Opepen
Interactions with other NFTs and wallets e.g. Entropes & Spells, Etholvants & Booster Syringes, Viper. SABOTAGE by Kim Asendorf features a 1/1 “Editor” NFT whose holder can alter the artwork of the collection.
NFTs whose media renders purely from onchain data evolve autonomously based parameters such as time, block hash, wallet address, which deterministically influences the artwork. Outside of onchain art and games which often require bespoke implementation per collection, NFTs with media reflecting onchain state can be used as commemorative or “receipt” NFTs to represent things like a DeFi position (Uni v3 Positions, Web3 Savings Cards), governance rights (PartyDAO Membership Cards, Juicebox Cards), or community membership card with some accrued reputation (JPG Canonicons, Deca).
Tokenizing protocol positions into NFTs makes these positions themselves tradeable as assets, turning them into building blocks for new products and services. For example, Metastreet deposits third party NFT promissory notes into a collateral pool for their Automated Tranche Maker protocol.
Having the media reflect live contract state makes contract state readable to end users of wallets and marketplaces. The skeleton SVG code is deployed once as part of the NFT contract, and the rest of the image is programmatically updated with onchain data.
Game items seem a natural fit for mutable metadata as players can evolve or power up assets through gameplay. The advantage of doing so through an NFT vs. virtual items in a centralized server is that the metadata can be tracked and stored on decentralized infrastructure, so the record of play persists as the item gets traded.
Mint and burn mechanics that elevates a subclass of assets into a higher "tier" produces new assets that can only derive from certain combinations of the lower tier (e.g. VV Checks) or inherit traits from its parents (e.g. CryptoKitties, Avastars).
Neolastics and Clovers are generative art projects that introduced dynamic supply and autonomous economics into the collection. For Neolastics, anyone can mint new tokens and inflate the supply with each subsequent mint price increasing according to a bonding curve. 99.5% of each mint cost goes into a community reserve that acts as predictable floor and ready buyer when anyone chooses to burn their Neolastic.
Dynamic supply mechanics can also be introduced via sinks and faucets in games. In Citadel, new ships are brought into the game through the ship Construction Bay via a weekly sealed-bid (blind) dutch auction system. Ships can be destroyed as players travel to more dangerous regions in the game, risking ship destruction for greater rewards. Inflation rates are within a narrow range of new ship quantities offered at auction, while ship destruction will tend to be a percentage based burn of the total supply. As total supply increases, total ship burns will increase until they are relatively equal to the number of new ships introduced at auction.
Interesting games can be designed where certain abilities or functions on the NFT contract remain dormant until specific conditions are met. For example, a dynamic collection in which the supply initially only decreases by merging two tokens together could include a function called “birth” that is only callable on NFTs that have reached a certain size by merging (reflected in the contract state). The generation and parent tokenID can be used as the seed for a deterministic renderer to create infinite, visually distinct rounds of a game like VV Checks.
NFTs could also be made changeable up to a period of time before the NFT is "locked" and becomes immutable.
Transient Labs has been spearheading experiments with interactive and updateable media in art. In ERC-721TL, they outline a way for both the creator and the collector to have a say in metadata updates, allowing collectors to approve or deny any proposed metadata changes by the artist. The standard also offers Story Inscriptions, enabling both creators and collectors to leave their narratives, exhibition provenance, and sales history on an artwork by appending onchain text to the NFT. Hidden Stories by Michelle Viljoen is a showcase of this.
These can be used to feed offchain data to smart contracts, allowing NFTs to respond to offchain events. For more complex interactions such as UGC in virtual land, the NFT represents in-world coordinates and write access. But the content itself is typically processed and stored in hosted servers which the token refers to in its metadata.
Chainlink Data Feeds can deliver information such as crypto prices and weather to make an NFT “environment aware”. Through their integration with Space & Time, developers can execute a script that queries a game server and push it onchain using Chainlink Functions.
Using Gelato Web3 Functions or Lit Actions, developers can write any logic to conditionally update NFTs based on offchain events or at specific intervals. Gelato nodes continuously run functions and can trigger metadata changes if specific conditions are met. Similarly, Lit Actions are executed across Lit’s threshold cryptography network, each node independently verifying the result and signing the transaction when it reaches a 2 ⁄ 3 threshold to automatically make onchain updates. For example, fetching live match data from a sports API and upgrading an athlete NFT’s skill traits as they win games.
Mentaport provides an SDK for “location-aware” smart contracts, enabling time and location-based feature access, mints, and dynamic updates which could be useful for limited time IRL campaigns and proof-of-visit mechanics.
Sparkblox, Evalon, and Metafuse offer all-in-one solutions to launch and manage interactive NFT collections that allow holders to engage with the assets, or dynamic NFTs that evolve based on real world data and connected APIs.
Kairos provides a GraphQL API to programmatically create, mint, sell NFTs and optionally with updateable metadata, as well as a Dynamic NFT developer tool with metadata and image held in Kairos servers.
Paima allows game developers to create stateful NFTs that can level up, gain experience, obtain equipment, and develop over time. Paima’s NFT compression protocol mints a minimal set of NFTs on the L1 and evolves them based on the game state on an L2.
Lync provides out of the box tooling for game developers to integrate web3, including a cross-chain wallet SDK, marketplace SDK, and NFT management tools where updates to in-game assets can be triggered using Chainlink Automation.
Syndicate metadata API gives creators options to where they want to store NFT metadata and bulk-update traits on collections.
Standards & Onchain Primitives
EIP-4906: Metadata Update Extension offers a standard MetadataUpdate event to make it easy for third-party platforms to update the metadata of NFTs. OpenSea supports this, and serves well for NFTs that update via calls to the contract, but not feasible if the changes are recurring. Juicebox uses cron jobs for the latter use case.
ERC-721TL by Transient Labs offers a way for creators and collectors to append writing to NFTs onchain (Story Inscriptions), a proposal mechanism for metadata updates (Synergy) in addition to gas-optimized implementations for batch mints and airdrops.
EIP-721k: Dynamic Onchain Images and Metadata constructs, renders, and evolves NFTs using composable onchain SVGModules and DataStreams. The NFT encodes dynamic instructions which are relayed to SVGElements and DataStreams modules. The SVG rendering engine constructs sub-elements using a public registry, constructing the SVG by encoding/decoding inputs piped in from multiple external smart contract sources in real time.This allows the NFT to be gradually updated and improved. Expansion packs and other gaming features can be easily introduced as the NFT reaches product market fit. See this in action in Web3 Savings Cards and Pixel Pooly.
EIP-7496 defines methods for setting and getting dynamic onchain traits associated with NFTs. By defining these traits onchain and standardizing how they can be changed, they can be used and modified by other contracts.
EIP-6551: Tokenbound accounts have been getting a lot of attention this year and, although it doesn’t tackle dynamism within an NFT itself, it enables NFTs to hold other assets and become their own onchain identities. Tokenbound accounts are backwards and forward compatible with any NFT collection out of the box. Any smart account implementation can be deployed to an NFT and start holding assets.
RMRK’s set of proposed standards for Multi-Asset, Nestable, Composable, Emotable and Soulbound NFTs.
Zipped-contracts by merklejerk is a nice trick to cheaply deploy contracts that are always called offchain in an eth_call context. Contracts are compressed offchain, and the runtime contract decompresses the zipped contract, deploys it, then forwards the original call to the deployed instance. The result is bubbled up inside of a revert() payload to undo the deployment and avoid permanently modifying state. This approach results in ~50% gas savings and is useful for text-heavy primitives such as composable SVG metadata.
Onchain typefaces and design systems are building blocks deployed once and put together more complex onchain media, though it will likely be a while before we see enough of these deployed to give creators a good range of options to choose from.
Dynamic NFTs are an exciting category-agnostic form factor for digital objects. Despite the nascency of supporting infrastructure, the ecosystem has actively been innovating on techniques to bring generative media and metadata onchain, and building composable primitives that can be reused by other projects.
Early dynamic NFT projects have required deep technical skills and bespoke implementations. But as middleware and creator tooling becomes more robust. We expect dynamic NFTs to be as ubiquitous and serve as large a variety of use cases as “vanilla” NFTs themselves. Some open questions…
How will frontends like marketplaces, portfolio trackers, and wallets add support for NFTs that evolve in real time?
How can we improve on decentralizing the solutions to rendering or running generative code?
How can publishers and collectors manage the permissioning and scope of changes that can be made to a particular NFT?
How generalisable is dynamic NFT infrastructure? Current minting engines and storefront builders were able to provide unopinionated tools to launch collections across media formats. But as dynamism varies even more across contexts, what will dynamic modules look like?
The lightning-in-the-bottle moment for NFTs was arguably not ERC721 itself, but the meteoric rise of CryptoKitties which served as a successful go-to-market for the standard. Predating even Ethereum itself, Colored Coins, Quantum, and Counterparty NFTs have shown us that technical innovation alone isn’t enough to trigger widespread experiments on top of that technology. Instead, it is the versatility, strong community evangelism, and killer application that turn standards into builders’ Schelling points for years to come. For dynamic NFTs, the primitives are already here.
If you’re building a dynamic NFT project, creator platforms and tools to launch dynamic collections, or have additional thoughts on the topic please reach out, would love to chat with you.