# Reference Contracts

### SNIP-20 Contracts

To master the SNIP-20 contract specifications, you can refer to these two key parts:

* [SNIP-20 specifications](https://github.com/SecretFoundation/SNIPs/blob/master/SNIP-20.md)
* [SNIP-20 reference implementation](https://github.com/scrtlabs/snip20-reference-impl)

### SNIP-721 NFT

To master the SNIP-721 contract specifications for Non-Fungible Tokens (NFT), you can refer to these two key parts:

* [SNIP-721 specifications](https://github.com/SecretFoundation/SNIPs/blob/master/SNIP-721.md)
* [SNIP-721 reference implementation](https://github.com/baedrik/snip721-reference-impl)
* [SNIP-721 Migrateable](https://github.com/eqoty-labs/snip721-migratable)

### Additional Reference Contracts

Here are some examples of additional Secret Contracts for reference:

#### Cosmwasm v1.0

* [HackSecret repositories](https://github.com/SecretFoundation/hack-secret-repositories/tree/main) - Winning projects from past Secret hackathons
* [Millionaire's Problem](https://github.com/scrtlabs/MillionaireProblemTutorial) - This is part of the [Getting Started Guide](https://docs.scrt.network/secret-network-documentation/development/getting-started). It is meant as an easy to understand first contract example that solves the Millionaire's Problem.
* [Secret Template](https://github.com/scrtlabs/secret-template) - Quick-start template to start developing Secret Contracts.
* [Template with Viewing Keys and Permits](https://github.com/TriviumNode/secret-contract-template) - Includes messages for frequently used permissioned functionality.
* [SNIP-20](https://github.com/scrtlabs/snip20-reference-impl) - Reference implementation of Secret Tokens.
* [SNIP-1155](https://github.com/DDT5/snip1155-reference-impl/) - Reference Implementation of Private Multitokens.
* [SNIP-721](https://github.com/baedrik/snip721-reference-impl) - Reference implementation of Secret NFTs.
* [Factory Contract Template](https://github.com/srdtrk/secret-factory-contract) - Demonstrates how to use a parent contract to create offspring contracts.
* [Cross-Chain Contracts Demo](https://github.com/scrtlabs/crosschain-contract-demo) - Example of a contract that can be uploaded to both secret and non-secret cosmwasm chains.

#### Cosmwasm v0.10

* [Secret Dice](https://github.com/scrtlabs/SecretDice) - Simple betting game on the outcome of a dice roll, with a video tutorial.
* [Simple Voting](https://github.com/scrtlabs/SecretSimpleVote) - Example of a voting contract.
* [NFT Minting](https://github.com/luminaryphi/secret-random-minting-snip721-impl) - Template for launching NFT projects that need randomized minting.
* [Secret Contract Verifier](https://github.com/digiline-io/secret-contract-verifier) - Verifies that an on-chain contract is indeed running a specific code. [Frontend](https://github.com/Xiphiar/fund-forwarding-frontend).
* [Funds Forwarding](https://github.com/luminaryphi/fund-forwarding) - A smart contract that receives tokens and distributes them to multiple addresses. [Frontend](https://github.com/Xiphiar/fund-forwarding-frontend).
* [NFT Authorization](https://github.com/srdtrk/nft-authorization) - Get authorized to web3 places by proving you are the owner of an NFT. [Frontend](https://github.com/zorostang/nft-authorization-front-end).
* [SNIP3 (Fixed Multisig)](https://github.com/kent-3/snip3-fixed-multisig) - A wallet that is collectively controlled by multiple accounts.
* [Price Oracle](https://github.com/scrtlabs/secret-oracle) - Example how real-world data could be inserted on chain by validators.
* [Sealed Bid Auction](https://github.com/baedrik/SCRT-sealed-bid-auction).
* [Token vesting contract](https://github.com/digiline-io/secret-token-vesting) - Demonstrates Vesting implementation
* [Fractionalized NFTs](https://github.com/DDT5/frac-snft-ref-impl) - These are the standard specifications and reference contract that implements the base standard required for fractionalized NFTs on Secret Network.
