Doppelgänger Contract Whitepaper

The Doppelgänger contract: an artist-owned contract that broadens the scope of a single ERC-721 token to store an array of images, facilitating a dynamic representation of the NFT via multiple artworks in the single token.

Designed by Transient Labs and Patrick Amadon, this Ethereum-based contract allows an NFT to point to one of multiple images in an array. The artist decides what is in the array and can add, but never subtract, from that array. The collector/owner of the contract can use the doppelgang function to which only they have access, to change the tokenURI to update the metadata to point to whichever artwork in the array they choose.

This functionality will enable a myriad of applications such as evolving single token artist collections, artist subscriptions, storytelling through multi-work NFTs, functionality for version control / different aspect ratios of digital work, and a solution to mitigate broken link risk, while all being on-chain under the single token.

Contract Architecture and Data Integrity

Doppelgänger is a pure Solidity contract residing on the Ethereum blockchain. Its architecture emphasizes durability and integrity, eschewing reliance on third-party services, fragile HTML, or mutable internet infrastructure. By removing reliance on third-party calls or websites, Doppelgänger avoids the fragility of contemporary internet infrastructure and helps ensure artwork longevity. This design leverages IPFS and Arweave for decentralized storage, in addition to the contract itself. The Doppelgänger contract ensures a fully functioning, repairable art token as long as the Ethereum network endures.

Detailed Use-Case Scenarios

Artist Subscription

Consider an artist who continually produces new work and wishes to offer their loyal followers access to their evolving portfolio. The Doppelgänger contract enables this concept to come to life by associating new works with an existing NFT.

For instance, an artist can issue subscription NFTs, each representing a living collection of their work. As the artist creates, they use the addDoppelgangers function to append new pieces to these NFTs, thereby continuously enriching the value and diversity of the artwork linked to each token.

Multi-Work NFTs

In the realm of storytelling, an NFT can encapsulate an unfolding narrative or series. An artist or author could launch an NFT representing the first piece or chapter of their work. As the narrative progresses, new pieces or chapters can be added to the NFT using the addDoppelgangers function. The token holder can then use the doppelgang function to traverse through the narrative at their own pace.

Multiple File Versions and Aspect Ratios

Artists often create their digital works in different versions or aspect ratios to ensure optimal viewing on various platforms and devices. With the Doppelgänger contract, they can add different versions of their artwork to an NFT. The token owner can select the version they prefer or that fits their display medium best using the doppelgang function.

Risk Mitigation

In the digital art world, broken links or discontinued hosting services can render an NFT worthless. However, the Doppelgänger contract provides a mitigation strategy for this risk. If an artwork’s link fails, the artist can use the addDoppelgangers function to provide a new, working link to the artwork, ensuring the NFT always has access to its associated artwork.

Instructions for Use

To update the tokenURI using MetaMask and Etherscan:

1. Connect your MetaMask wallet to Etherscan by navigating to the Doppelgänger contract page on Etherscan.

2. Once there, click on ‘Write Contract’.

3. Connect to Web3, which will open a MetaMask popup for you to sign the transaction and establish the connection.

4. Once connected, navigate to the doppelgang function.

5. Input the _tokenId you own and token number for the artwork you want your NFT to point to.

6. Click ‘Write’ and confirm the transaction in MetaMask.

Please note that this will require a small amount of Ether for the transaction gas fee.

Genesis Artwork Library

At launch, Patrick Amadon’s Doppelgänger NFT is associated with the following artwork array:

Token 0 
4000 x 4000 Pixels // 49 Frames // 29.8 MB

Token 1
1920 x 1080 Pixels // 164 Frames // 75.7 MB

Token 2
2000 x 2000 Pixels // 53 Frames // 41.1 MB

Token 3
3200 x 3200 Pixels // 7 Frames // 38.4 MB

Token 4
2675 x 2189 Pixels // 20 Frames // 47.8 MB

Token 5
1869 x 1869 Pixels // 23 Frames // 36.6 MB

Token 6
2420 x 2420 Pixels // 14 Frames // 42.6 MB

Token 7
1900 x 1900 Pixels // 25 Frames // 48.6 MB

Token 8

Token 9+

This array will grow over time as more artworks are added.


The Doppelgänger contract provides a significant upgrade to the ERC-721 standard by enhancing its flexibility, offering a wide array of use-cases, and mitigating the risk of broken artwork links. By allowing dynamic representation of an NFT and maintaining the immutability of the artworks, it unlocks new possibilities in digital art and collect.

Built on STACKS by