# 메타 정보 조회

## 튜토리얼에 앞서 <a href="#tutorial-node-api-meta-start" id="tutorial-node-api-meta-start"></a>

* API 호출에 사용되는 `x-chain-id` 값은 8217(Cypress) 또는 1001(Baobab)입니다.
* API 호출에 필요한 필수 파라미터는 각 예시에 설명됩니다.

API 호출 시 사용자가 입력해야 하는 값은 중괄호 1개(`{}`)로 표시합니다. 사용자가 입력해야 하는 값은 아래 테이블과 같습니다.

| 항목                | 값                     | 비고                                                      |
| ----------------- | --------------------- | ------------------------------------------------------- |
| chain-id          | 8217 또는 1001          | Cypress(Klaytn 메인넷) 또는 Baobab(Klaytn 테스트넷)              |
| access-key-id     | 인증 아이디                | KAS 콘솔 - Security - Credential에서 발급받은 `accessKeyId`     |
| secret-access-key | 인증 비밀번호               | KAS 콘솔 - Security - Credential에서 발급받은 `secretAccessKey` |
| krn               | (optional) 계정 저장소의 ID | 기본 계정 저장소 사용 시 불필요                                      |

API 인증 키가 있으면 모든 KAS 서비스를 사용할 수 있으며 Wallet API를 호출해 만든 Klaytn 계정에 대한 모든 권한을 소유합니다. 모든 권한에는 Klaytn 계정의 자산(KLAY 등) 이동이나 [트랜잭션](/kas-docs-dev/tutorial/wallet-transaction-api.md) 전송 및 실행 권한이 포함됩니다. 만약 API 인증 키에 타인이 접근한다면 Klaytn 계정 권한을 탈취당해 원치 않는 트랜잭션이 발생할 수 있습니다.

{% hint style="danger" %}
KAS/Klaytn 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.
{% endhint %}

{% hint style="info" %}
Klaytn Node에서 Klaytn 계정 정보를 확인하려면 계정 저장소와 계정을 생성하고 사용할 계정을 선택해야 합니다.\
계정 저장소 생성, 계정 생성, 계정 선택에 관한 자세한 내용은 [Getting Started](/kas-docs-dev/getting-started/account.md)를 확인하십시오.
{% endhint %}

{% hint style="info" %}
Klaytn Node - Metadata API는 SDK(caver-js, caver-java)를 지원하지 않습니다.
{% endhint %}

이 문서 혹은 KAS에 관한 문의는 [개발자 포럼](https://forum.klaytn.com/c/kas/kasko/26)을 방문해 도움을 받으십시오. <br>

## FT 컨트랙트 정보 조회 <a href="#tutorial-node-api-meta-ftcontract" id="tutorial-node-api-meta-ftcontract"></a>

FT 컨트랙트란 클레이튼에 배포되는 스마트 컨트랙트의 일종입니다. 이 컨트랙트는 [대체 가능 토큰](https://ko.docs.klaytn.com/smart-contract/token-standard#fungible-token-standard-kip-7)(Fungible Token, FT)을 발행, 삭제, 전송하는 기능을 제공합니다.

조회할 FT 컨트랙트는 반드시 ERC-20 또는 KIP-7 표준을 지켜야 하며 `name()`, `symbol()`, `decimals()` 함수들을 반드시 미리 구현해야합니다. 반드시 미리 구현해야 할 함수에 관한 더 자세한 정보는 [ERC-20](https://eips.ethereum.org/EIPS/eip-20), [KIP-7](https://kips.klaytn.com/KIPs/kip-7)를 확인하십시오.

### API 호출

```
curl --location --request GET "https://node-api.klaytnapi.com/v2/metadata/ft/0x3b3b30a76d169f72a0a38ae01b0d6e0fbee3cc2e" \
    --header "x-chain-id: {chain-id}" \
    -u {access-key-id}:{secret-access-key}
```

{% hint style="info" %}
컨트랙트가 클레이튼상에 없다면 컨트랙트 주소를 제외한 모든 응답값은 빈 문자열 또는 0/-1입니다.\
ERC-20/KIP-7 표준을 따르지 않으면 컨트랙트에 따라 다른 응답값이 반환됩니다.\
필수 함수를 구현하지 않으면 응답값에서 해당 함수가 채워주는 필드들은 빈 문자열 또는 0/-1입니다.
{% endhint %}

{% hint style="warning" %}
이 API는 컨트랙트가 올바른 ERC-20/KIP-7 표준인지 검증하지 않습니다.\
패스 파라미터에 NFT 컨트랙트 주소를 입력하지 않도록 주의하십시오.
{% endhint %}

### API 응답

```javascript
{
    "address": "0x3b3b30a76d169f72a0a38ae01b0d6e0fbee3cc2e",
    "decimals": 18,
    "name": "TEMCO",
    "symbol": "TEMCO",
    "totalSupply": "0x1363156bbee3016d70000000"
}
```

이 API에 관한 자세한 내용은 [다음](https://refs.klaytnapi.com/ko/node/latest#operation/FT%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8%EC%A1%B0%ED%9A%8C)을 확인하십시오.\
이 문서 혹은 KAS에 관한 문의는 [개발자 포럼](https://forum.klaytn.com/c/kas/kasko/26)을 방문해 도움을 받으십시오.

## NFT 컨트랙트 정보 조회 <a href="#tutorial-node-api-meta-nftcontract" id="tutorial-node-api-meta-nftcontract"></a>

NFT 컨트랙트란 클레이튼에 배포되는 스마트 컨트랙트의 일종입니다. 이 컨트랙트는 [대체 불가 토큰](https://ko.docs.klaytn.com/smart-contract/token-standard#non-fungible-token-standard-kip-17)(Non-Fungible Token, NFT)을 발행, 삭제, 전송하는 기능을 제공합니다.

조회할 NFT 컨트랙트는 반드시 ERC-721 또는 KIP-17 표준을 지켜야 하며 `name()`, `symbol()`, `totalSupply()` 함수들을 반드시 미리 구현해야합니다. 반드시 미리 구현해야 할 함수에 관한 더 자세한 정보는 [ERC-721](https://eips.ethereum.org/EIPS/eip-721), [KIP-17](https://kips.klaytn.com/KIPs/kip-17)을 확인하십시오.

### API 호출

```javascript
curl --location --request GET "https://node-api.klaytnapi.com/v2/metadata/nft/0x369611bc873b38175b91d6cc8c4018bdd3068b86" \
    --header "x-chain-id: {chain-id}" \
    -u {access-key-id}:{secret-access-key}
```

{% hint style="info" %}
컨트랙트가 클레이튼상에 없다면 컨트랙트 주소를 제외한 모든 응답값은 빈 문자열 또는 0/-1입니다.\
ERC-721/KIP-17 표준을 따르지 않으면 컨트랙트에 따라 다른 응답값이 반환됩니다.\
필수 함수를 구현하지 않으면 응답값에서 해당 함수가 채워주는 필드들은 빈 문자열 또는 0/-1입니다.
{% endhint %}

{% hint style="warning" %}
이 API는 컨트랙트가 올바른 ERC-721/KIP-17 표준인지 검증하지 않습니다.\
패스 파라미터에 FT 컨트랙트 주소를 입력하지 않도록 주의하십시오.
{% endhint %}

### API 응답

API가 성공적으로 실행되면 다음과 같은 응답을 받습니다.

```javascript
{
    "address": "0x369611bc873b38175b91d6cc8c4018bdd3068b80",
    "name": "Test NFT",
    "symbol": "TNC",
    "totalSupply": "0x86"
}
```

이 API에 관한 자세한 내용은 [다음](https://refs.klaytnapi.com/ko/node/latest#operation/NFT%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8%EC%A1%B0%ED%9A%8C)을 확인하십시오.\
이 문서 혹은 KAS에 관한 문의는 [개발자 포럼](https://forum.klaytn.com/c/kas/kasko/26)을 방문해 도움을 받으십시오.

## NFT 정보 조회 <a href="#tutorial-node-api-meta-nft" id="tutorial-node-api-meta-nft"></a>

NFT 정보를 조회합니다. NFT 컨트랙트란 클레이튼에 배포되는 스마트 컨트랙트의 일종입니다. 이 컨트랙트는 [대체 불가 토큰](https://ko.docs.klaytn.com/smart-contract/token-standard#non-fungible-token-standard-kip-17)(Non-Fungible Token, NFT)을 발행, 삭제, 전송하는 기능을 제공합니다.

정보를 불러오려는 NFT의 토큰 ID값과 이 NFT를 발행한 NFT 컨트랙트 주소값을 입력하고 정보를 불러옵니다. 이 NFT 컨트랙트는 반드시 ERC-721 또는 KIP-17 표준을 지켜야 하며, 올바른 정보 반환을 위해 `tokenUri()` 함수를 반드시 구현해야합니다.

### API 호출

```javascript
curl --location --request GET "https://node-api.klaytnapi.com/v2/metadata/nft/0x369611bc873b38175b91d6cc8c4018bdd3068b80/0x1" \
    --header "x-chain-id: {chain-id}" \
    -u {access-key-id}:{secret-access-key}
```

* 조회하려는 NFT를 발행한 NFT 컨트랙트 주소값 `0x369611bc873b38175b91d6cc8c4018bdd3068b80`은 예시값입니다.
* 조회하는 토큰 ID값 `0x1`은 예시값입니다.

### API 응답

API가 성공적으로 실행되면 다음과 같은 응답을 받습니다.

```javascript
{
    "uri": "https://media.nft.com/card_asset/165616/cced4c1b-6407-45a4-b6d9-ec040870df5e.json",
    "owner": "0x3cb01b8f935069b3f3d57cff07be4e4c09164f71"
}
```

이 API에 관한 자세한 내용은 [다음](https://refs.klaytnapi.com/ko/node/latest#operation/NFT%EC%A1%B0%ED%9A%8C)을 확인하십시오.\
이 문서 혹은 KAS에 관한 문의는 [개발자 포럼](https://forum.klaytn.com/c/kas/kasko/26)을 방문해 도움을 받으십시오.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ground-x.gitbook.io/kas-docs-dev/tutorial/klaytn-node-api-metadata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
