> For the complete documentation index, see [llms.txt](https://yours.gitbook.io/kor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yours.gitbook.io/kor/technical-documents/the-method-of-utilizing-aptos-sdk.md).

# The method of utilizing Aptos SDK

{% hint style="info" %}
Aptos 체인이 가지는 구조와 그에 따른 유얼스 프로토콜 내 기능 구현 방법에 대해서 설명하는 페이지입니다.
{% endhint %}

## Yours Aptos NFT 개념

Aptos eco-system에서 NFT는 EVM과 달리 mint id로 구분되지 않습니다. 이 페이지는 그에 따른 aptos nft 구조에 대한 이해를 돕기 위한 페이지입니다.

<figure><img src="https://2763898701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUxnGMiKoCQE3mWiBjArb%2Fuploads%2FpBkUWg1LyRRbghkGjulv%2Fimage.png?alt=media&amp;token=cb854004-0602-4f41-a6e7-ea1638187d6c" alt=""><figcaption></figcaption></figure>

Aptos에는 콜렉션이라는 개념이 존재합니다. 토큰을 식별할 때 콜렉션과 토큰 이름으로 식별합니다. Aptos에서는 특정 콜렉션 안에서 토큰을 발행하도록 하며 각 콜렉션 내에서는 토큰 이름 중복을 허용하지 않습니다.

Aptos의 토큰에는 property\_version이라는 것이 존재합니다. property에는 원하는 정보를 key-value형태로 넣을 수 있습니다. property의 정보를 수정하기 위해 mutate\_property를 사용합니다. 그 과정에서 property\_version이 1씩 증가하며 부여됩니다. property\_version이 부여된 토큰을 수정한다면 해당 토큰의 property\_version은 변경되지 않습니다.

### NFT 발행

***

NFT를 발행하기에 앞서 NFT에 대한 정보를 받습니다.

* NFT 이름
* NFT 설명
* NFT 이미지
* 혜택 정보

위 NFT 정보를 ipfs에 업로드 후 나온 결과 값으로 토큰을 발행합니다. 각 토큰들의 property key와 value는 하기와 같습니다.

* benefitUri : 혜택 URI
* indexList:  사용자에게 부여되는 혜택 번호 배열
* owner: NFT 소유자
* maxPropertyVersion: 토큰의 최대 property\_version

NFT가 발행되고 property\_version이 1인 토큰은 NFT 메타데이터를 저장합니다. 따라서 메타데이터 수정, 혜택 정보 수정 등의 기능이 수행될 때는 property\_version이 1인 토큰 정보를 수정합니다.

NFT이름의 경우, **'NFT이름 #id'** 의 형태로 NFT가 발행되는데 그 이유는 Aptos에는 한 콜렉션에 NFT 이름 중복을 허용하지 않기에 사용자에게 NFT 이름 중복을 허용하기 위함입니다.

### NFT 민팅

***

NFT를 민팅하기에 앞서 NFT 이름과 받고자 하는 사용자의 정보를 받습니다.

property\_version이 0인 토큰에 mutate\_property를 통해 owner를 수정하고 index\_list에 해당 사용자가 몇번의 혜택을 갖는지 저장합니다. 또한 property\_version이 1인 토큰의 maxPropertyVersion을 1 증가시켜줍니다. 그 이유는 토큰을 식별하기 위해서 해당 토큰의 property\_version이 활용되므로 다음 민팅이 이루어지기 위함입니다.

### NFT 통합

***

NFT를 통합하기에 앞서 정보를 받습니다.

* owner : 소유자의 정보
* uri: 통합 NFT의 이미지 uri&#x20;
* nftNameList: 통합시킬 NFT 이름 배열
* propertyVersionList: 통합시킬 NFT의 property\_version 배열

새로운 토큰을 발행하는데 해당 토큰의 property\_key와 value는 하기와 같습니다.

* owner: 소유자의 정보
* nameList: 통합시킬 NFT 이름 배열
* propertyVersionList: 통합시킬 NFT의 property\_version 배열

Yours EVM NFT에서는 통합된 NFT들을 Lock해야 하지만, Aptos SDK에는 burn만이 만들어져 있습니다. 그렇기에 현재 개발자분들의 논의가 이루어지고 있습니다.
