동적 NFT(dynamic NFT)는 외부 조건에 따라 메타데이터를 자동으로 변경할 수 있는 NFT입니다.
NFT는 “Non-Fungible Token”의 약자이며 블록체인 상의 고유한 디지털 자산으로 대체가 불가능한 불변한 토큰입니다. 각 NFT는 고유한 계약 주소와 토큰 ID를 가지고 있고 토큰의 메타데이터에 이미지, 파일, 데이터, 링크와 같은 정보를 넣을 수 있습니다. NFT는 명실상부 블록체인의 가장 눈에 띄는 애플리케이션 중 하나이자 가장 인기를 얻은 Dapp입니다. 메타버스와 예술 또는 부동산과 같은 분야에서 좋은 기회를 제공하며 발전하며 이미 많은 곳에서 사용합니다.
하지만 NFT가 발행되면 토큰 ID와 메타데이터가 영구적으로 변경을 하지못하는 정적(Static)인 특징을 가지고 있습니다. 이 특성은 NFT의 유용성에 대한 의문을 제기하게 만들었고 결국 NFT의 한계로 여겨지게 되었습니다. 이 한계를 뛰어넘기 위해 기존의 NFT를 넘어 다음 세대 NFT인 dNFT(Dynamic Non-Fungible Token)가 등장했습니다.
앞으로 등장할 동적 NFT는 현재의 NFT와는 다르게 한번 발행된 NFT의 속성, 즉 메타데이터가 변할 수 있는 NFT를 말합니다. 발행 또는 소유한 기간, 다른 NFT와의 결합이나 합체, 심지어는 오프체인 데이터(날씨, 환율, 주가, 유가 등)의 변화에 따라 속성이나 능력, 기능, 외관까지 모두 변하는 NFT를 설계할 수 있습니다.
API Name | Method | API Path |
---|---|---|
메인 홈페이지 | GET | http://localhost:1323/ |
NFT 디테일 페이지 | GET | http://localhost:1323/searchdetail/1 |
검색 | GET | http://localhost:1323/search? |
마이 페이지 | GET | http://localhost:1323/user/mypage |
마이 페이지 수정 | POST | http://localhost:1323/mypage/edit |
Chainlink Automation NFT Dynamic NFT Minting | POST | http://localhost:1323/mnfts |
Weather Dynamic NFT Minting | POST | http://localhost:1323/wdnfts |
구매 | POST | http://localhost:1323/buy |
판매 | POST | http://localhost:1323/sell |
메타데이터 업데이트 | POST | http://localhost:1323/metadata |
create database lift;
use lift;
CREATE TABLE `users` (
`id` int PRIMARY KEY AUTO_INCREMENT ,
`name` varchar(255),
`owner_address` varchar(255),
`description` varchar(255)
);
ALTER TABLE users ADD UNIQUE (`owner_address`);
CREATE TABLE `nft` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`users_id` int default 0,
`token_id` int default 0,
`owner_address` varchar(255),
`name` varchar(255),
`description` varchar(255),
`ipfs_url` varchar(255),
`nft_contract_address` varchar(255)
);
CREATE TABLE `nft_metadata` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`token_id` int default 0,
`owner_address` varchar(255),
`nft_contract_address` varchar(255),
`ipfs_url1` varchar(255),
`ipfs_url2` varchar(255),
`ipfs_url3` varchar(255),
`ipfs_url4` varchar(255)
);
CREATE TABLE market (
`id` int PRIMARY KEY AUTO_INCREMENT,
`nft_contract_address` varchar(255),
`market_contract_address` varchar(255),
`token_id` varchar(255),
`owner_address` varchar(255),
`price` int ,
`sale_status` varchar(255)
);
CREATE TABLE `automation_dnft` (
`auto_id` int PRIMARY KEY AUTO_INCREMENT,
`auto_users_id` int,
`auto_token_id` int,
`auto_owner_address` varchar(255),
`auto_name` varchar(255),
`auto_description` varchar(255),
`auto_ipfs_url` varchar(255),
`auto_nft_contract_address` varchar(255)
);
CREATE TABLE `Weather` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`locationID` int,
`name` varchar(255),
`latitude` float,
`longitude` float,
);
CREATE INDEX idx_nft_name ON nft(name);
CREATE INDEX idx_nft_description ON nft(description);
CREATE INDEX idx_nft_ownerAddress ON nft(owner_address);