KIP17

KIP 문서

클레이튼에서 대체 불가능한 토큰(Non Fungible Token)의 표준이다. ERC-721에서 파생되었으며 차이점은 다음과 같다.

KIP-17 과 ERC-721 차이점

  • 모든 토큰의 transfer/mint/burn 은 이벤트 로그를 남겨야 한다. 이는 즉 Transfer 이벤트가 transfer/mint/burn 시 반드시 찍혀야 함을 의미한다.
  • 보다 다양한 확장 옵션 (Minting extension, minting with URL extension, burning extension, and pausing extension)
  • safeTransfer로 컨트랙트에게 토큰을 보낼 시 리시브 훅을 호출한다.
  • onKIP17Received 리시브 훅을 호출한다.
  • ERC721 수신 가능 지갑 역시 지원한다. 즉, onERC721Received 리시브 훅도 지원한다.

MUST

  • 모든 토큰의 transfer/mint/burn 은 이벤트 로그를 남겨야 한다. 이는 즉 Transfer 이벤트가 transfer/mint/burn 시 반드시 찍혀야 함을 의미한다.
  • 컨트랙트가 safeTransfer 로 토큰을 받을 수 있으려면 반드시 리시브 훅(onKIP17Received 또는 onERC721Received)을 구현해야 한다. 리시브 훅은 반드시 각자의 magic value를 리턴해야 한다.
    • onKIP17Received: 0x6745782b
    • onERC721Received: 0x150b7a02

Memo

onKIP17ReceivedonERC721Received 둘 다 구현하는 컨트랙트는 중복해서 처리하지 않도록 주의해야 할 것 같다.


tags: blockchain, smart contract, erc721, nft, klaytn