Every NFT in a shell collection belongs to a specific fork, which is a set of NFTs within a shell collection all running the same engine. NFT owners may join existing forks, or create their own.

The owner of a fork can install any engine they wish at any time.

By letting nearly all of the business logic of an NFT collection be determined by the market in a permissionless way, a novel form of bottom-up product development may be possible. See Why DAOs Change Everything, an essay by LZRS for more information.


Forks give power to NFT owners and enable permissionless competition.

While the root fork determines how NFTs are minted, anybody who owns an NFT in the collection is able to iterate on the appearance or behavior of their NFTs by creating a new fork, or joining an existing sub-community who has already created their own fork.

The engine and storage semantics of shell ensure that data moats and potential damage from malicious engines are eliminated.


  • NFT owners can create a fork at any time. The creator of the fork is the fork owner
  • NFT owners can join existing forks with any number of their owned NFTs
  • The fork an NFT belongs to does not change if the NFT is transferred or sold
  • The fork owner can install an engine to the fork at anytime
  • The fork owner can transfer fork ownership to a different address
  • The fork’s engine can modify the token storage for any NFT that belongs to the fork
  • The fork’s engine can modify its own siloed fork storage at any time

The root fork

  • Each fork has a specific ID (auto incrementing, starting at 0)
  • Fork ID 0 is considered the root fork
  • The owner of the root fork is considered the collection owner
  • The engine running on the root fork is the only engine that can mint to the collection