Skip to content

NFT 마켓플레이스

FlutterDev의 NFT 마켓플레이스 서비스입니다.

개요

NFT 마켓플레이스는 ERC721 토큰을 거래할 수 있는 탈중앙화 플랫폼입니다.

  • 고정가 판매: 즉시 구매 가능한 고정 가격 리스팅
  • 경매 시스템: 입찰 기반 경매 (최소 1시간 ~ 최대 7일)
  • 플랫폼 수수료: 2.5% (판매 금액에서 차감)

사용 방법

1. NFT 민팅

FlutterNFT 컬렉션에서 직접 NFT를 민팅할 수 있습니다.

  1. 마켓플레이스 접속 → "NFT 민팅" 메뉴
  2. 이미지 업로드 및 메타데이터 입력
  3. MetaMask 서명으로 민팅 완료

2. NFT 판매 (고정가)

  1. 보유 NFT 선택 → "판매하기"
  2. 마켓플레이스 Approve (최초 1회)
  3. 판매 가격 설정
  4. 리스팅 완료

3. NFT 구매

  1. 마켓플레이스에서 NFT 탐색
  2. "구매" 버튼 클릭
  3. 표시된 금액으로 트랜잭션 서명
  4. NFT 소유권 이전 완료

4. 경매 생성

  1. 보유 NFT 선택 → "경매 생성"
  2. 시작가 설정
  3. 경매 기간 설정 (1시간 ~ 7일)
  4. 경매 시작

5. 경매 입찰

  • 첫 입찰: 시작가 이상 필요
  • 추가 입찰: 현재 최고가의 5% 이상 상회 필요
  • 경매 종료 시 최고 입찰자에게 NFT 전송
  • 낙찰 실패 시 입찰금 반환 가능

스마트 컨트랙트

배포된 컨트랙트

컨트랙트주소
FlutterNFT0x35D5c3E04AFad435C1AED7bcBAF930F936375Cce
NFTMarketplace0xB3a8EAF0bd2715E471fbF3E08AA831cEFDC1B5FD

FlutterNFT (ERC721)

공식 NFT 컬렉션 컨트랙트입니다.

solidity
// NFT 민팅 (Base64 메타데이터 URI)
function mint(string memory uri) external returns (uint256 tokenId)

//  민팅된 수량
function totalMinted() external view returns (uint256)

// 특정 주소의 모든 토큰 ID
function tokensOfOwner(address owner) external view returns (uint256[] memory)

NFTMarketplace

NFT 거래를 위한 마켓플레이스 컨트랙트입니다.

고정가 판매

solidity
// NFT 리스팅 (판매 등록)
function listItem(
    address nftContract,    // NFT 컨트랙트 주소
    uint256 tokenId,        // 토큰 ID
    uint256 price           // 판매가 (wei)
) external returns (uint256 listingId)

// NFT 구매
function buyItem(uint256 listingId) external payable

// 리스팅 취소
function cancelListing(uint256 listingId) external

경매

solidity
// 경매 생성
function createAuction(
    address nftContract,
    uint256 tokenId,
    uint256 startPrice,     // 시작가 (wei)
    uint256 duration        // 기간 (초), 1시간~7일
) external returns (uint256 auctionId)

// 입찰
function placeBid(uint256 auctionId) external payable

// 경매 종료 (기간 만료)
function endAuction(uint256 auctionId) external

// 입찰금 반환 (낙찰 실패자)
function withdrawPendingReturn(uint256 auctionId) external

View 함수

solidity
// 활성 리스팅 목록
function getActiveListings() external view returns (uint256[] memory)

// 활성 경매 목록
function getActiveAuctions() external view returns (uint256[] memory)

// 리스팅 상세
function getListing(uint256 listingId) external view returns (
    address seller,
    address nftContract,
    uint256 tokenId,
    uint256 price,
    bool active
)

// 경매 상세
function getAuction(uint256 auctionId) external view returns (
    address seller,
    address nftContract,
    uint256 tokenId,
    uint256 startPrice,
    uint256 highestBid,
    address highestBidder,
    uint256 endTime,
    bool active,
    bool ended
)

수수료 구조

항목비율
플랫폼 수수료2.5%
최소 입찰 증가폭5%

주의사항

  • NFT 리스팅 시 마켓플레이스에 NFT가 에스크로됩니다
  • 경매 입찰금은 컨트랙트에 보관되며, 낙찰 실패 시 수동으로 인출해야 합니다
  • 경매는 시작 후 취소할 수 없습니다

외부 NFT 거래

FlutterNFT 외에도 모든 ERC721 표준 NFT를 거래할 수 있습니다.

  1. NFT 컨트랙트 주소 입력
  2. 토큰 ID 입력
  3. 마켓플레이스에 Approve
  4. 리스팅 또는 경매 생성

ABI

전체 ABI는 다음에서 확인 가능:

  • FlutterNFT: /home/blockchain/nft-marketplace/artifacts/contracts/FlutterNFT.sol/FlutterNFT.json
  • NFTMarketplace: /home/blockchain/nft-marketplace/artifacts/contracts/NFTMarketplace.sol/NFTMarketplace.json

FlutterDev Private Blockchain Platform