A non-exhaustive list of Cadence contracts, scripts, transactions that exemplify best practices.
These contracts are so-called foundational because they are standard interfaces that any FT or NFT contract will implement. They introduce commonly seen resources such as Vaults, Collections as well as standard events.
- FungibleToken Interface - Example implementations: FlowToken, FUSD
- NonFungibleToken Interface - See below for implementations
An collection of contracts currently deployed on mainnet that show Cadence best practices and worth studying.
The core smart contracts powering the Flow Blockchain.
An implementation of the CENTRE Fiat Token in Cadence, on the Flow Blockchain. Shows a good example of a FiatToken
, which implements interfaces FungibleToken
, FiatTokenInterface
, and OnChainMultiSig
.
The NFT storefront is a general-purpose Cadence contract for trading NFTs on Flow. NFTStorefront uses modern Cadence run-time type facilities to implement a marketplace that can take any currency in order to vend any token in a safe and secure way. This means that only one instance of the contract is needed (visit link for its address on Testnet and Mainnet), and its resources, transactions, and scripts can be used by any account to create any marketplace.
Each Chainmonsters NFT represents a Chainmon, item or cosmetic from within the game. The NFTs are grouped into seasons which usually have some overarching theme, exclusive items and rewards. Multiple NFTs can be minted from the same reward and each receives a serial number that indicates where in the edition it was minted.
Find is a name service for Flow. It has contracts showing how to implement Profiles, Donations, displaying user's various NFTs (although things will change in the near future with the NFT Metadata standard) as well as how the .find name service works from a Smart Contract level.
Versus is a novel auction style NFT marketplace. Its contracts show good examples of implementing the NFT interface as well as how to setup an auction style marketplace.
If you would like to add your contracts to this list, please submit a PR following the pattern above – i.e. link to contract and explanation as to why it's worth studying/learning from.