--- title: "Archway HackAtom VI: NFTs Workshop" tags: workshop, nft, cw721, CosmWasm, cosmos --- # Archway HackAtom VI: NFTs Workshop :::warning You can watch the replays of both workshops in the [HackAtom's event website](https://hackatom.airmeet.com/event/8d99ec40-424e-11ec-868e-f7fade6f497c). Just go to the *Schedule* and navigate to the sessions in their specific dates: - **Intro to Building dApps on Archway**: Nov 24th - **How to Build, Mint, and Transfer NFTs on Archway**: Dec 1st ::: ## Agenda - Smart contract walkthrough - Mint and Transfer - Q&A ## HackAtom VI Bounties #### [HackAtom (see "End-User Apps")](https://hackatom.org/#prizes) - **1st:** $35,000 - **2nd:** $15,000 #### Requirements - All projects should be deployed and workable on Archway’s testnet - Contracts using CosmWasm - Adhere to standard token interfaces ([CW20](https://github.com/CosmWasm/cw-plus/tree/main/packages/cw20), [CW721](https://github.com/CosmWasm/cw-nfts/tree/main/packages/cw721)) and [wallet signing](https://cosmos.github.io/cosmjs/latest/proto-signing/index.html) for contract deployment and interactions (mint, list, buy, sell, transfer, etc), - A functional and usable front-end ## Intro Just a few links and some info to help you on your journey. Under [Archway](#Archway) you’ll find quick links to dependencies and CLI commands. Under [Packages, Contracts & Contract Utilities](#Packages-Contracts-amp-Contract-Utilities) contains links to smart contracts that can be used or pilfered from. Under [dApps & dApp Utilities](#dApps-amp-dApp-Utilties) you’ll find frontend packages and example repositories for dApp frontends built using Archway / CosmWasm. ## Refresher ### Lifecycle of a CosmWasm Smart Contract 1. Compile 1. Store 1. Instantiate 1. Execute / Query ### CW721 - [CW721 Spec](https://github.com/CosmWasm/cw-nfts/tree/main/packages/cw721) - [Archway cw721 contract example](https://github.com/archway-network/contracts-examples/tree/main/archway-nft) #### Messages (abbreviated) ##### Execute: - `Mint{token_id, owner, token_uri}` - `TransferNft{recipient, token_id}` ##### Query: - `Tokens{owner}` - `OwnerOf{token_id}` ## Archway - [Constantine block explorer](https://explorer.constantine-1.archway.tech/) - [Install dependencies](https://docs.archway.io/docs/create/getting-started/install) - [Creating a wallet & new project](https://docs.archway.io/docs/create/getting-started/setup) - [CLI commands cheat sheet](https://docs.archway.io/docs/create/getting-started/basics) ## Packages, Contracts & Contract Utilities - [Archway Templates](https://github.com/archway-network/archway-templates) - [Archway Smart Contracts examples](https://github.com/archway-network/contracts-examples) - [CosmWasm Plus](https://github.com/CosmWasm/cw-plus) - [CosmWasm NFTs](https://github.com/CosmWasm/cw-nfts) - [Cosmons NFT Marketplace](https://github.com/BlockscapeNetwork/hackatom_v/tree/master/contracts/marketplace) ## dApps & dApp Utilties - [CosmJS](https://cosmos.github.io/cosmjs/) - [Archway dApp examples](https://github.com/archway-network/dApp-examples) - [CosmWasm dApps](https://github.com/CosmWasm/dApps) - [Cosmverse NFT Marketplace](https://github.com/CosmosContracts/cosmverse) ## Other References ### NFTs - [EIP-721: Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) - [NFT Metadata Standards](https://docs.opensea.io/docs/metadata-standards) - [The Non-Fungible Token Bible: Everything you need to know about NFTs](https://opensea.io/blog/guides/non-fungible-tokens/) ### IPFS and Storage services - [IPFS](https://ipfs.io/) - [Pinata](https://pinata.cloud/) - [nft.storage](https://nft.storage/) ### Rust - [Traits](https://doc.rust-lang.org/book/ch10-02-traits.html) - [Generic Lifetimes](https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html)