myNFT is a simple NFT minting and marketplace application built on the Sui blockchain. It is designed for a 2-day technical workshop, so the explanations are clear and beginner-friendly.
The project showcases how to:
-
Upload NFT media using Walrus decentralized storage
-
Mint NFTs using Sui Move smart contracts
-
List and purchase NFTs through a basic marketplace
-
Build a dApp using Vite + TypeScript as the frontend
Frontend: Vite + TypeScript
Smart Contracts: Sui Move
Storage: Walrus (for media and metadata storage)
Minting
Upload images or files to Walrus
Generate NFT metadata
Mint NFTs on the Sui blockchain
Marketplace
List NFTs for sale
Buy NFTs with SUI tokens
Transfer ownership automatically
Wallet Integration
Connect a Sui wallet
Sign and send transactions
View owned NFTs
Before getting started, ensure you have:
Node.js (version 18+)
npm, yarn, or pnpm
Sui CLI installed and configured
Walrus CLI or SDK access
A Sui wallet (such as Slush, Ethos or Suiet)
- Clone the repository
git clone https://github.com/CipherG7/myNFT
cd myNFT- Install frontend dependencies
cd src
npm install
npm run dev- Build and publish the Move contracts
cd myNft
sui move build
sui client publishSave the published package ID and update the frontend configuration.
- Mint an NFT
Using the frontend:
Upload media (Walrus blob ID)
Fill in metadata
Mint the NFT through the connected wallet
Workshop Goals
By the end of the workshop, participants should understand:
How Move modules work on Sui
How to deploy and interact with smart contracts
How Walrus stores files in a decentralized way
How to build a basic dApp using Vite + TypeScript
The complete workflow of minting and listing NFTs
This dApp was created using @mysten/create-dapp that sets up a basic React
Client dApp using the following tools:
- React as the UI framework
- TypeScript for type checking
- Vite for build tooling
- Radix UI for pre-built UI components
- ESLint
@mysten/dapp-kitfor connecting to wallets and loading data- pnpm for package management