Skip to content

anggla01301/solMonster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SolMonster

Solana 블록체인 기반 NFT 몬스터 수집·육성 플랫폼.
Anchor 스마트 컨트랙트 설계부터 프론트엔드 지갑 연동까지 풀스택으로 개발한 개인 프로젝트입니다.

Tech Stack

영역 스택
Smart Contract Rust, Anchor 0.32.1, anchor-spl 0.32.1, mpl-token-metadata 5.1.1
Frontend Next.js (Pages Router), TypeScript
Blockchain Solana (Devnet)
Storage Pinata (IPFS)

System Flow

관리자: init_collection → init_reward_token
유저:   mint_monster → claim_reward → level_up → (반복) → transfer / burn

Program Instructions

총 7개의 Instruction을 설계·구현하고 Devnet에 배포했습니다.

# Instruction 설명 권한
1 init_collection Collection NFT 생성 (Metaplex Certified Collection) 관리자
2 init_reward_token SMON 토큰 Mint 생성, PDA에 Mint Authority 위임 관리자
3 mint_monster 몬스터 NFT 발행 + MonsterState PDA 초기화, IPFS 메타데이터 연동 유저
4 claim_reward NFT 보유 확인 → 시간 기반 토큰 발행 (CPI) 유저
5 level_up 토큰 burn → 레벨/경험치 업데이트 유저
6 burn_monster NFT 소각 → 레벨 비례 토큰 보상 → PDA close (rent 회수) 유저
7 transfer_monster NFT 전송 + PDA owner 업데이트 유저

Architecture Highlights

  • PDA 기반 계정 구조 설계 — 싱글톤(ProjectConfig), per-NFT(MonsterState), 글로벌 권한(RewardTokenAuthority) 패턴 적용
  • Metaplex CPI 연동 — metadata / master_edition을 UncheckedAccount로 선언, Metaplex CPI 시점에 유효성 검증 위임
  • SPL Token 보상 시스템 — Mint Authority를 PDA로 위임하여 프로그램 내 토큰 발행·분배
  • 토큰 이코노미 — 시간 기반 리워드, 레벨 비례 비용/보상 설계

PDA Design

PDA Seed 역할
MonsterState ["monster", nft_mint] NFT 1개당 1개, 레벨·경험치·소유자 저장
RewardTokenAuthority ["reward_authority"] SMON 토큰 Mint Authority
ProjectConfig ["config"] 전역 설정 (관리자, 컬렉션, 리워드 토큰)

Frontend

커스텀 훅 기반으로 각 Instruction별 트랜잭션 로직을 분리했습니다.

Hook 역할
useMintMonster 몬스터 NFT 발행 트랜잭션
useMyMonsters 보유 몬스터 목록 조회
useLevelUp 레벨업 트랜잭션
useClaimReward 보상 토큰 Claim 트랜잭션

각 훅은 대응하는 컴포넌트 + .module.css와 함께 구성되어 있습니다.

Devnet Deployment

  • Program ID: AoNegzH2FQjijiDxEU8gsM8RLVeByKEdvcE86AvFAa9i
  • Network: Solana Devnet

Getting Started

Prerequisites

  • Rust & Cargo
  • Solana CLI
  • Anchor CLI 0.32.1
  • Node.js 18+
  • Phantom Wallet (브라우저 확장)

Build & Deploy

yarn install
anchor build
anchor deploy --provider.cluster devnet
cd app && yarn dev

Note: 빌드 시 platform-tools v1.48v1.43 디렉토리 복사가 필요할 수 있습니다.


日本語 / Japanese

Solanaブロックチェーン上でNFTモンスターを収集・育成するプラットフォームです。
Anchorスマートコントラクトの設計からフロントエンドのウォレット連携まで、フルスタックで開発した個人プロジェクトです。

技術スタック

領域 スタック
Smart Contract Rust, Anchor 0.32.1, anchor-spl, mpl-token-metadata
Frontend Next.js (Pages Router), TypeScript
Blockchain Solana (Devnet)
Storage Pinata (IPFS)

システムフロー

管理者: init_collection → init_reward_token
ユーザー: mint_monster → claim_reward → level_up → (繰り返し) → transfer / burn

主な実装内容

  • 7つのInstruction — コレクション初期化、モンスターMint、レベルアップ、報酬トークンClaim、バーン、転送
  • PDAベースのアカウント設計 — シングルトン(ProjectConfig)・per-NFT(MonsterState)・グローバル権限(RewardTokenAuthority)パターン
  • Metaplex CPI連携 — metadata / master_editionをCPI時にMetaplexプログラムへ検証委任
  • SPLトークン報酬システム — Mint AuthorityをPDAに委任し、プログラム内でトークン発行・分配
  • トークンエコノミー — 時間ベースのリワード、レベル比例のコスト・報酬設計

PDA設計

PDA Seed 役割
MonsterState ["monster", nft_mint] NFT1つにつき1つ、レベル・経験値・所有者を保存
RewardTokenAuthority ["reward_authority"] SMONトークンのMint Authority
ProjectConfig ["config"] グローバル設定(管理者、コレクション、報酬トークン情報)

フロントエンド

Next.js + TypeScriptで構築。useMintMonsteruseLevelUpuseClaimReward等のカスタムフックでトランザクションロジックを分離し、各フックに対応するコンポーネントと.module.cssで構成しています。

Devnetデプロイ

  • Program ID: AoNegzH2FQjijiDxEU8gsM8RLVeByKEdvcE86AvFAa9i
  • Network: Solana Devnet

About

Solana smart contract + Next.js frontend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors