A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | What is this ? | |||||||||||||||||||||||||||||
2 | This is a filterable list of smart contracts reviewed and rated by @CardilloSamuel , CTO of RTFKT Studios, with the intent of helping collectors to understand NFTs they are collecting but also developers to avoid doing mistakes. | |||||||||||||||||||||||||||||
3 | How is this rating done ? | |||||||||||||||||||||||||||||
4 | The rating is done by a very simple look at the smart contract initial code. What is looked into mainly are: 1) centralization of assets ; 2) absence of watchdogs in the smart contract functions ; 3) potential security vulnerability/weird stuff | |||||||||||||||||||||||||||||
5 | What does "centralization of assets" means ? | |||||||||||||||||||||||||||||
6 | The image/video/... of your NFT, as well as its metadata, might actually not be living on the blockchain but instead off chain in a centralized system which, in case of failure, would cause the loss of your NFT. This is why using IPFS, ARWEAVE or on-chain capabilities is MORE than recommended. | |||||||||||||||||||||||||||||
7 | What does "absence of watchdogs" means ? | |||||||||||||||||||||||||||||
8 | If the code in the smart contract allow the modification of some metadata, including medias. for specific reasons (like a lootbox), watch dogs should be in place to make sure no abuse could ever be done on those functions. | |||||||||||||||||||||||||||||
9 | REVIEW A SMART CONTRACT : Contact @CardilloSamuel on Twitter to request a quick smart contract review | |||||||||||||||||||||||||||||
10 | You can donate on this addresss if you wish to support my work : | |||||||||||||||||||||||||||||
11 | 0x1ae6A4d3078b951438d1aa64DE6C1E4e033913D6 | |||||||||||||||||||||||||||||
12 | ||||||||||||||||||||||||||||||
13 | HIGHLY SUGGEST GOING ON CRYPTOZOMBIE TO LEARN THE BASICS OF SOLIDITY (https://cryptozombies.io/) | |||||||||||||||||||||||||||||
14 | THIS LIST WILL SOON CHANGE. TO SEE ADVISE ON GAS OPTIMISATION AND WEB3 PLEASE CHECK THE 2 OTHER TABS | |||||||||||||||||||||||||||||
15 | ||||||||||||||||||||||||||||||
16 | IPFS/ARWEAVE | |||||||||||||||||||||||||||||
17 | Name | OpenSea | Etherscan | Rate | Metadata | Assets | Immutable | On Chain | Comment | |||||||||||||||||||||
18 | Avastars | https://opensea.io/assets/avastar | https://etherscan.io/address/0xf3e778f839934fc819cfa1040aabacecba01e049 | A+ | The Rollsroyce of the smart contracts in terms of decentralization and longetivity. Everything is on chain. | |||||||||||||||||||||||||
19 | The CryptoBabyPunks OS | https://opensea.io/assets/cryptobabypunksopensea | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | B- | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
20 | The CryptoBabyPunks | https://opensea.io/assets/thecryptobabypunks | https://etherscan.io/address/0x20c34eb95ebec100ac7c7ad934435f2002fe2703 | A | Migrated contract from CBP OS. Works well. Decentralized assets on IPFS | |||||||||||||||||||||||||
21 | CryptoWiener | https://opensea.io/collection/cryptowiener-4 | https://etherscan.io/address/0xe73c9d94a542b1708450e13d12d4b38204dfd72c#code | C | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
22 | Pixel Kitty Supercar Club | https://opensea.io/collection/pixel-kitty-supercar-club | https://etherscan.io/address/0xED00Ef96bD0f6db10fd8b392BAc230B7463b5403#code | B- | 1. Contract is copy-paste, no function names have been changed from the Boring Banan Co. ; 2. setBaseUri can be called at anytime by the owner (but not by tokenid so that is good) | |||||||||||||||||||||||||
23 | Cannabis Crypto Club | https://opensea.io/collection/cryptocannabisclub | https://etherscan.io/address/0x80a4b80c653112b789517eb28ac111519b608b19#code | A- | Assets are on IPFS, contract is pretty well coded. The only thing is the setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
24 | Satoshible | https://opensea.io/collection/satoshibles | https://etherscan.io/address/0x0b0b186841c55d8a09d53db48dc8cab9dbf4dbd6#code | A | Metadata are set later but locked by a variable (great usage of a watchdog). Good contract overall! | |||||||||||||||||||||||||
25 | Red Army Punks | https://opensea.io/collection/red-army-punks | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e#comments | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
26 | CryptoZunks | https://opensea.io/collection/zunks | https://etherscan.io/address/0x031920cc2d9f5c10b444fd44009cd64f829e7be2#code | A+ | Another rollsroyce of smart contracts : amazing way to save gas fees, everything is on chain, super smart code | |||||||||||||||||||||||||
27 | Cool Cats NFT | https://opensea.io/assets/cool-cats-nft | https://etherscan.io/address/0x1a92f7381b9f03921564a437210bb9396471050c#code | A- | Clean code, well documented and simple! The only is is the setBaseUri without watchdogs | |||||||||||||||||||||||||
28 | Space Poggers | https://opensea.io/collection/spacepoggers | https://etherscan.io/address/0x4a8b01e437c65fa8612e8b699266c0e0a98ff65c#code | B- | Code is pretty much a mess.Honestly. I don't know what else to write beside that. It is pretty much a mess. | |||||||||||||||||||||||||
29 | CeoPunks | https://opensea.io/collection/ceopunks | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
30 | Bored Mummy Waking Up | https://opensea.io/collection/bored-mummy-waking-up | https://etherscan.io/address/0xf621b26ce64ed28f42231bcb578a8089f7958372#contracts | C | Good contract. The B is because the tokenURI (so the metadata of the NFT) can be changed at ANYTIME (no watchdogs) by the collection owner. Don't do that when you code reveleable NFTs. Instead, put a boolean like "revealed" that turn true and makes the function uncallable again else your NFT is mutable. | |||||||||||||||||||||||||
31 | WhelpsNFT | https://opensea.io/collection/whelpsnft | https://etherscan.io/address/0xa8934086a260f8ece9166296967d18bd9c8474a5#code | A+ | Another gem! Properties are on chain, visual data are on IPFS, they are using clever computation to assemble the URI (smart!) - GGWP to the team behind! | |||||||||||||||||||||||||
32 | Punks-Gang | https://opensea.io/collection/punk-lovers | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
33 | Deebies | https://opensea.io/collection/deebies | https://etherscan.io/address/0x400e2073b4ac13d6f11c15697df7fc609db93809#code | B- | Assets are stored on Google storage - so not decentralized. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
34 | POW NFT | https://opensea.io/collection/pownft | https://etherscan.io/address/0x9abb7bddc43fa67c76a62d8c016513827f59be1b#code | B+ | Assets are not decentralized - using some appspot for the video. Contract is pretty smart tho. | |||||||||||||||||||||||||
35 | Cryptinies | https://opensea.io/collection/cryptinies | https://etherscan.io/address/0xcd223812722faf45848a431a6e0387de7ffbc2b2 | A- | Contract is good, assets are on IPFS. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
36 | Robotos | https://opensea.io/collection/robotos-official | https://etherscan.io/address/0x099689220846644f87d1137665cded7bf3422747#code | A- | Bad thinking on the mint function (with the condition to withdrawAll) but assets are on IPFS and contract is pretty small and smart. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
37 | FVCK_CRYSTAL// | https://opensea.io/collection/fvck-crystal | https://etherscan.io/address/0x7afeda4c714e1c0a2a1248332c100924506ac8e6#code | A | Heavy contract (manifold), that much code might be a bit overkill (i always enjoy clean and concise code) but smart one and content is on ARWEAVE. | |||||||||||||||||||||||||
38 | NounsDAO | https://opensea.io/collection/nouns | https://etherscan.io/address/0x9c8ff314c9bc7f6e59a9d9225fb22946427edc03#code | A+(+) | The kind of smart contract that is out of this galaxy. Just pure perfection. Everything decentralized, on chain, generated in a SUPER clever way... there is too much good things to say - actually ONLY good things. Good job! | |||||||||||||||||||||||||
39 | Meet the Bloomps | https://opensea.io/collection/meet-the-bloomps | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e#code | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
40 | Cryptocoin Factory Collection | https://opensea.io/collection/crypto-coinfactory-collection | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e#code | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
41 | Illustration & Reality | https://opensea.io/collection/illusation-and-reality | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
42 | Biomes | https://opensea.io/assets/biomes | https://etherscan.io/address/0x2e394a23ba638DF19A9DAf81b4A2A1f4F4398d3C | A | Migrated contract from CBP OS. Works well. Decentralized assets on IPFS | |||||||||||||||||||||||||
43 | Hyades | https://opensea.io/collection/hyades | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | B- | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
44 | Hunnys | https://opensea.io/collection/hunnys | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | B- | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
45 | Moondogs Odyssey | https://opensea.io/collection/moondogs-odyssey | https://etherscan.io/address/0xfc007068c862e69213dc7aa817063b1803d4e941 | B- | Assets are stored on DigitalOcean - so not decentralized. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
46 | Pudgy Penguin | https://opensea.io/collection/pudgypenguins | https://etherscan.io/address/0xbd3531da5cf5857e7cfaa92426877b022e612cf8#code | B- | Assets are stored on a private server - so not decentralized. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
47 | MonsterBlock | https://opensea.io/collection/monster-blocks | https://etherscan.io/address/0xa56a4f2b9807311ac401c6afba695d3b0c31079d#code | A+ | Assets are stored on chain, smart usage of Chainlink for RNG, clean code: that is an A+ ! | |||||||||||||||||||||||||
48 | Pudgy Collabs | https://opensea.io/collection/pudgycollabs | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e#code | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
49 | Were Iz DIldo | https://opensea.io/collection/were-iz-dildo | https://etherscan.io/address/0x6bb11ad45e9fb6f2dccb010a765ac4161ba84b53#code | A | Assets are decentralized, great usage of watchdogs, VERY WEIRD CODING STYLE (but funny) - sad that Chainlink was not used for the RNG | |||||||||||||||||||||||||
50 | The Vogu | https://opensea.io/collection/vogu | https://etherscan.io/address/0x18c7766a10df15df8c971f6e8c1d2bba7c7a410b#code | B+ | Assets are decentralized, Chainlink is used - super cool BUT setBaseUri that can be called at anytime by the owner therefore there is uncontrolled mutability of the NFT | |||||||||||||||||||||||||
51 | Lonely Alien Space Club | https://opensea.io/collection/lonelyalienspaceclub | https://etherscan.io/address/0x343f999eaacdfa1f201fb8e43ebb35c99d9ae0c1#code | B- | Centralized assets can be lost if the Amazon server close. setBaseURI can be called at anytime. Code is a bit messy - lot of commented parts and stuff | |||||||||||||||||||||||||
52 | 0xmons | https://opensea.io/collection/0xmons-xyz | https://etherscan.io/address/0x0427743df720801825a5c82e0582b1e915e0f750#code | A | Assets are on IPFS & on chain, contract is pretty well coded. The only thing is the setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
53 | Sunken Squids | https://opensea.io/collection/sunken-squids | https://etherscan.io/address/0x37f21981afcde1342b8a56d536cfbfe8e4b5d48a#code | B+ | Assets are on IPFS but the metadata call is not, contract is based on Bored Banana. setBaseUri that can be called at anytime by the owner. | |||||||||||||||||||||||||
54 | HappyLand Gummy Bears Official | https://opensea.io/collection/happyland-gummy-bears-official | https://etherscan.io/address/0xf32e1bde889ecf672ffae863721c8f7d280f853b#code | B | Centralized assets can be lost if the Amazon server close. setBaseURI can be called at anytime. Contract seems based on Bored Banana with some changes so it gain a point for that. | |||||||||||||||||||||||||
55 | Top Dog Beach Club | https://opensea.io/collection/topdogbeachclub | https://etherscan.io/address/0x6f0365ca2c1dd63473f898a60f878a07e0f68a26#code | B | Semi-centralized assets (metadata is using a centralized API but assets are on IPFS). setBaseURI can be called at anytime. Contract seems well coded so : good point on that. - Reason of mutability: https://twitter.com/TopDogBeachClub/status/1427994269944586240 | |||||||||||||||||||||||||
56 | Hedgie | https://opensea.io/collection/hedgie | https://etherscan.io/token/0x452b2bc7c94515720b36d304ce33909a8323f3e3 | C | Centralized contract with setTokenURIPrefix callable anytime by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
57 | World of Women | https://opensea.io/collection/world-of-women-nft | https://etherscan.io/address/0xe785e82358879f061bc3dcac6f0444462d4b5330#code | B | Semi-centralized assets (metadata is using a centralized API but assets are on IPFS). setBaseURI can be called at anytime. Contract seems well coded so : good point on that. | |||||||||||||||||||||||||
58 | 0n1force | https://opensea.io/collection/0n1-force | https://etherscan.io/address/0x3bf2922f4520a8BA0c2eFC3D2a1539678DaD5e9D#code | B+ | setContractUri, setBaseUri, setRevealedBaseUri can all be called anytime by the collection owner, no watchdog, which makes the contract mutable. Smart contract is well developed beside that. | |||||||||||||||||||||||||
59 | FameLadySquad | https://opensea.io/collection/fameladysquad | https://etherscan.io/address/0xf3e6dbbe461c6fa492cea7cb1f5c5ea660eb1b47#code | B+ | Assets are decentralized but "changeBaseURI" can be called anytime which makes the assets mutable. Beside that, good contract. | |||||||||||||||||||||||||
60 | Gauntlets | https://opensea.io/collection/gauntlets/ | https://etherscan.io/address/0x74ecb5f64363bd663abd3ef08df75dd22d853bfc#code | C | Assets are centralized and both "setProvenanceHash" and "setBaseURI" can be called anytime making the entire thing super mutable. | |||||||||||||||||||||||||
61 | Veefriends | https://opensea.io/collection/veefriends | https://etherscan.io/address/0xa3aee8bce55beea1951ef834b99f3ac60d1abeeb#code | A- | PARTIAL : Visual assets can be changed but on chain data can't | Very good smart contract, sad for the metadata that are not on IPFS but very good contract anyway | ||||||||||||||||||||||||
62 | DizzyDragons | https://opensea.io/assets/0x882a47e6070aca3f38ce6929501f4787803a072b/5716 | https://etherscan.io/address/0x882a47e6070aca3f38ce6929501f4787803a072b#code | B- | Assets are centralized and both "setProvenanceHash" and "setBaseURI" can be called anytime making the entire thing super mutable. | |||||||||||||||||||||||||
63 | CryptoPunk ON-CHAIN | N/A | https://etherscan.io/address/0x16f5a35647d6f03d5d3da7b35409d65ba03af3b2#code | A+ | Assets are fuilly on-chain, super good usage of watchdogs (contractSealed variable). It is a pretty smart way of doing things instead of forcing migration - kudos to LarvaLabs | |||||||||||||||||||||||||
64 | Pixel Headz | https://opensea.io/collection/pixel-headz | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C- | Centralized contract with openly editable metadata by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
65 | Untamed Elephant Crew | https://opensea.io/collection/untamed-elephants | https://etherscan.io/address/0x613e5136a22206837d12ef7a85f7de2825de1334#code | B+ | Assets are decentralized but setBaseUri can be called at anytime by collection owner which makes the contract mutable. | |||||||||||||||||||||||||
66 | 9021 | https://opensea.io/collection/9021collective | https://etherscan.io/address/0x248de15e3a0da895f4f82cd24bff89964e4aa381#code | B- | Assets are decentralized but too many functions inside the contract allow mutability of the assets - also the contract is a bit of a mess | |||||||||||||||||||||||||
67 | Ready Player Cat NFT | https://opensea.io/collection/ready-player-cat-nft | https://etherscan.io/address/0xcdb7c1a6fe7e112210ca548c214f656763e13533#code | C- | Assets are centralized and contract is "upgradeable" meaning that it can be changed AT ANYTIME. STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
68 | PeePeeBoy | https://opensea.io/collection/peepeeboy | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C- | Centralized contract with setTokenURIPrefix callable anytime by the collection creator: STAY AWAY FROM SUCH CONTRACT! | |||||||||||||||||||||||||
69 | Luchadores.io | https://opensea.io/collection/luchadores-io | https://etherscan.io/address/0x8b4616926705fb61e9c4eeac07cd946a5d4b0760#code | A- | Great contract, data are immutable because on-chain but the visual parts is mutable because not hosted on IPFS. Still good tho. | |||||||||||||||||||||||||
70 | Obits | https://opensea.io/collection/obitsofficial | https://etherscan.io/address/0x30cdac3871c41a63767247c8d1a2de59f5714e78 | A | Assets are decentralized, great usage of watchdogs, | |||||||||||||||||||||||||
71 | TubbyReindeer | https://tubbyreindeer.com/ | https://cchain.explorer.avax.network/address/0xA5A0958Aac97C89406ae14666A42EEF91D8801d4/transactions | A | Assets are decentralized, great usage of watchdogs, | |||||||||||||||||||||||||
72 | 8-Bit Sport - Football | https://opensea.io/collection/8-bit-sport-football | https://etherscan.io/address/0x495f947276749ce646f68ac8c248420045cb7b5e | C | Centralized contract, assets can be lost if the platform closes. Metadata are hosted on a dabatase. | |||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||
100 |