CryptoVandals is made up of three pieces:
CryptoVandals lets you:
Liberate an NFT: When you tell CryptoVandals to liberate an NFT, it uploads the linked content to IPFS and sends a single transaction from your address to the CryptoVandals contract. The transaction burns the original NFT by sending it to a null address. The same transaction mints a liberated NFT, replacing the original links with open, accessible, content addressed IPFS links. The transaction sent to the CryptoVandals contract links to both the original NFT and the liberated NFT, maintaining its provenance.
Vandalize an NFT: When you tell CryptoVandals to vandalize an NFT, it does the same things as above, but changes the original content links to reference new content. It could be a modified version of the same content or something entirely new.
For the backend:
open zeppelin ERC-721 contracts
HardHat + Ethers + TypeScript
waffle for testing
For the frontend:
github actions for CI