> ## Documentation Index
> Fetch the complete documentation index at: https://docs.datafdn.org/llms.txt
> Use this file to discover all available pages before exploring further.

# DATA Foundation에서 음악을 등록하는 방법

> TypeScript SDK를 사용해 음악을 IP Asset으로서 DATA Foundation에 적절히 등록하는 방법을 알아봅니다.

이 튜토리얼에서는 TypeScript SDK를 사용해 음악을 DATA Foundation의 IP로 적절하게 등록하는 방법을 학습합니다. 마지막에는 우리의 익스플로러에서 직접 자신의 곡을 들을 수 있게 됩니다.

<CardGroup cols={2}>
  <Card title="예시 최종 결과" href="https://aeneid.explorer.datafdn.org/ipa/0x70920EaC7F9748Ac5A71C82310f1ac1C7eD11f02" icon="house">
    이 튜토리얼을 따라한 후의 결과 예시를 확인하세요.
  </Card>

  <Card title="저스틴 비버가 DATA Foundation에 옵니다!" href="https://x.com/StoryProtocol/status/1881713146274156951" icon="megaphone">
    저스틴 비버의 "Peaches"는 DATA Foundation에 등장하는 최초의 RWA 중 하나입니다. 발표 내용을 확인하세요!
  </Card>
</CardGroup>

## 1. 곡 만들기

DATA Foundation에 음악을 등록하기 전에 당연히 음악이 필요합니다! 이미 음악이 있다면 음악 파일에 직접 연결되는 링크를 준비하세요. 예를 들어 `https://cdn1.suno.ai/dcd3076f-3aa5-400b-ba5d-87d30f27c311.mp3`. 아직 준비되지 않았다면 음악 파일을 IPFS에 업로드할 수 있습니다:

테스트 곡을 만들고 싶다면, AI 생성 음악을 위한 훌륭한 플랫폼인 [Suno](https://suno.com)로 이동하세요. 다음과 같이 테스트 곡을 받을 수 있습니다:

1. 곡을 만들기 위한 프롬프트 입력
2. 최종 결과를 클릭하면 `https://suno.com/song/dcd3076f-3aa5-400b-ba5d-87d30f27c311`와 같은 URL로 이동합니다.
3. URL의 `SONG_ID`(`dcd3076f-3aa5-400b-ba5d-87d30f27c311`)를 복사합니다.
4. 다음 URL을 복사하되, `SONG_ID`를 본인 ID로 교체하세요: `https://cdn1.suno.ai/${SONG_ID}.mp3`.

이 URL을 2단계에서 사용합니다.

## 2. "IP 등록 방법" 튜토리얼 완료

필요한 대부분의 작업은 [IP Asset 등록하기](/developers/typescript-sdk/register-ip-asset)에 이미 다뤄져 있습니다. 먼저 해당 튜토리얼을 완료한 후 이곳으로 돌아오세요.

## 3. 메타데이터 변경

유일한 차이점은 메타데이터를 어떻게 설정하는지입니다. 다음은 예시입니다:

* `image.*`는 곡이 등록될 때 표지 이미지를 표시하는 데 사용됩니다.
* `media.*`는 오디오 파일에 사용됩니다. `media.*`에 전달되는 필드는 침해 확인에 사용될 수 있습니다.

```typescript main.ts theme={null}
const ipMetadata = {
  title: "Midnight Marriage",
  description: "This is a house-style song generated on suno.",
  createdAt: "1740005219",
  creators: [
    {
      name: "Jacob Tucker",
      address: "0xA2f9Cf1E40D7b03aB81e34BC50f0A8c67B4e9112",
      contributionPercent: 100,
    },
  ],
  image:
    "https://cdn2.suno.ai/image_large_8bcba6bc-3f60-4921-b148-f32a59086a4c.jpeg",
  imageHash:
    "0xc404730cdcdf7e5e54e8f16bc6687f97c6578a296f4a21b452d8a6ecabd61bcc",
  mediaUrl: "https://cdn1.suno.ai/dcd3076f-3aa5-400b-ba5d-87d30f27c311.mp3",
  mediaHash:
    "0xb52a44f53b2485ba772bd4857a443e1fb942cf5dda73c870e2d2238ecd607aee",
  mediaType: "audio/mpeg",
};
```

이 작업을 완료한 후, 다음과 같이 NFT 메타데이터를 설정할 수 있습니다:

* `image`는 표지 이미지를 위한 것
* `animation_url`은 오디오 파일에 사용됩니다.
* `attributes`는 포함하고자 하는 추가 속성을 위한 것

```typescript main.ts theme={null}
const nftMetadata = {
  name: "Midnight Marriage",
  description:
    "This is a house-style song generated on suno. This NFT represents ownership of the IP Asset.",
  image:
    "https://cdn2.suno.ai/image_large_8bcba6bc-3f60-4921-b148-f32a59086a4c.jpeg",
  animation_url:
    "https://cdn1.suno.ai/dcd3076f-3aa5-400b-ba5d-87d30f27c311.mp3",
  attributes: [
    {
      key: "Suno Artist",
      value: "amazedneurofunk956",
    },
    {
      key: "Artist ID",
      value: "4123743b-8ba6-4028-a965-75b79a3ad424",
    },
    {
      key: "Source",
      value: "Suno.com",
    },
  ],
};
```

## 4. 완료!

스크립트를 실행하면 IP Asset이 등록되고, 우리의 익스플로러에서 [이와 같이](https://aeneid.explorer.datafdn.org/ipa/0x70920EaC7F9748Ac5A71C82310f1ac1C7eD11f02) 보일 것입니다.

익스플로러가 메타데이터 형식을 인식하고, 페이지에서 곡을 바로 재생할 수 있는 것을 확인할 수 있습니다!

<CardGroup cols={1}>
  <Card title="더 알아보기" href="/developers/tutorials/how-to-register-ip" icon="book-open">
    문서에서 더 많은 튜토리얼을 탐색하세요
  </Card>
</CardGroup>
