Project - NFT Market
일주일동안 OpenAPI를 이용하여 간단한 NFT Market을 만들어 보았다. 총 4명이서 파트를 나누어 개발을 진행하였다.
우리는 스마트 컨트랙트, 서버, 클라이언트로 나누어 개발을 진행하였다.
스마트 컨트랙트는 ERC-721 표준에 근거하여 NFT를 민팅할 수 있도록 구현하였으며,
서버는 OpenAPI인 moralis를 사용하여 블록체인 상에 존재하는 모든 NFT를 조회하거나, 내가 발행한 NFT를 조회할 수 있는 API와, 위에서 발행한 스마트 컨트랙트에 접근하여 NFT를 민팅할 수 있는 API를 구현하였다. 또한 NFT를 민팅할 때 선택되는 이미지와 메타데이터는 Pinata IFPS 서비스를 이용하였다.
클라이언트는 React와 메타마스크를 연동하여 이더리움 네트워크에서 사용할 수 있도록 구현하였다.
어플리케이션이 완성된 후 오라클 클라우드를 통해 서버를 만들고, Nginx를 사용하여 해당 어플리케이션을 해당 서버에 배포하는 것 까지 진행하였다. (오라클 클라우드는 개인당 서버를 2개까지 무료로 제공해주며, 약150GB의 저장공간을 무료로 제공한다.)
NFT Market 소개
1. 메인 페이지
처음 사이트를 실행하면 메타마스크 지갑을 연동할 수 있으며 지갑을 연동해야 create, mypage를 사용 할 수 있다. explore는 지갑 연동 없이도 조회가 가능하다.
2. explore
moralis API를 통해 이더리움 블록체인에 있는 NFT를 조회할 수 있다. 현재 보여지는 화면은 이더리움 Rinkeby 테스트넷에 발행되어 있는 NFT이다.
3. create
NFT를 민팅할 수 있는 페이지 화면이다. 해당 사이트에서 민팅을 진행하면 우리가 개발한 스마트 컨트랙트의 주소로 민팅이 진행된다. 발행할 NFT Name, Description, Image File을 선택하고 Mint! 버튼을 클릭하면 민팅이 진행된다.
4. mypage
내 지갑주소로 발행되어 있는 모든 NFT를 조회할 수 있으며, transfer을 통해 다른 사용자에게 nft를 전송할 수 있다.
5. 배포 서버 확인
오라클 클라우드에서 nginx를 통해 배포를 진행하였으며 ddyymarket.cf 사이트에 배포를 해보는것까지 프로젝트를 진행하였다.
마치며...
5일 밖에 되지 않는 짧은 기간이었지만 팀원들과 간단하게 NFT Market을 구현하였다. 원래는 OpenSea API로 프로젝트를 구현해보려고 하였으나 OpenSea에서 API를 발급받지 못해서 다른 API를 사용하였다.. NFT를 거래하는 로직이 빠진건 조금 아쉽다. 아 그리고 Pinata IFPS는 서버가 너무 불안정한것같다(느리다..). 다른 프로젝트를 진행할때는 다른 IFPS서비스 연동하는 것이 좋을 것 같다는 생각이 들었다.
해당 프로젝트는 여기에서 볼 수 있다.