📝 IPA 메타데이터 표준
IP 특화 메타데이터 표준에 대한 개요
우리는 아직 IPA 메타데이터 표준을 정의하는 최선의 방법을 찾고 있습니다. 투명성을 위해 다음 문서는 지금까지의 우리의 생각이지만, 향후 버전을 출시함에 따라 변경될 수 있습니다.
Official Ippy IP
NFT와 IP 메타데이터를 모두 가지고 있는 공식 Ippy IP를 확인해보세요.
IP 자산에 메타데이터를 추가하는 방법
설명이나 완성된 코드 예제와 함께 여기서 논의된 IP 메타데이터를 IP 자산에 실제로 추가하는 방법을 알아보세요.
이것은 IP 자산과 연관된 JSON 메타데이터로, IP 계정 내부에 저장됩니다. 메타데이터를 설정하려면 IP 계정 내에서 setMetadata(...)
를 호출해야 하며, 그 다음 metadata()
를 호출하여 읽을 수 있습니다.
속성 및 구조
아래는 IP 메타데이터에 제공해야 할 중요한 속성들입니다. 필수 항목 열은 특정 필드가 무엇에 필요한지를 나타냅니다:
- 🔍 Story Explorer - 이 필드는 Story Explorer에서 IP를 표시하는 데 도움이 됩니다
- 🕵️ 상업적 침해 확인 - 이 필드는 IP가 상업적인 경우 (즉,
commercialUse = true
라이선스 조건이 첨부된 경우) 필요합니다. 우리는 이 필드들을 사용하여 IP에 대한 침해 확인을 실행할 것입니다.- 참조: 현재 제한사항.
- 🤖 AI 에이전트 - AI 에이전트와 관련된 메타데이터 표시에 사용됨
속성 이름 | 유형 | 설명 | 필수 항목 |
---|---|---|---|
title | string | IP의 제목 | 🔍 Story Explorer |
description | string | IP의 설명 | 🔍 Story Explorer |
createdAt | string | IP가 생성된 날짜/시간 (ISO8601 또는 유닉스 형식). 이 필드는 온체인에 없는 역사적 날짜를 지정하는 데 사용할 수 있습니다. 예를 들어, Harry Potter는 6월 26일에 출판되었습니다. | 🔍 Story Explorer |
image | string | IP의 이미지. 오디오 자산의 경우 권장되는 썸네일 종횡비는 1:1입니다. 비디오 자산의 경우 16:9입니다. | 🔍 Story Explorer |
imageHash | string | SHA-256 해싱 알고리즘을 사용한 image 의 해시. 여기에서 그 방법을 확인하세요. | 🔍 Story Explorer |
creators | IpCreator[] | 창작자에 대한 정보 배열. 아래에 정의된 유형 참조 | 🔍 Story Explorer |
mediaUrl | string | 침해 확인에 사용되며, 실제 미디어(예: 이미지 또는 오디오)를 가리킵니다. 오디오 자산의 경우 권장되는 썸네일 종횡비는 1:1입니다. 비디오 자산의 경우 16:9입니다. | 🕵️ 상업적 침해 확인 |
mediaHash | string | SHA-256 해싱 알고리즘을 사용한 미디어의 해시된 문자열. 여기에서 그 방법을 확인하세요. | 🕵️ 상업적 침해 확인 |
mediaType | string | 미디어 유형(오디오, 비디오, 이미지), mimeType을 기반으로 함. 허용된 미디어 유형은 여기를 참조하세요. | 🕵️ 상업적 침해 확인 |
aiMetadata | AIMetadata | AI 에이전트 메타데이터 등록 및 표시에 사용됩니다. 아래에 정의된 유형 참조 | 🤖 AI 에이전트 |
N/A | N/A | 다른 값들도 포함할 수 있습니다. | N/A |
유형 정의
다음은 메타데이터에 사용된 복잡한 유형에 대한 유형 정의입니다:
미디어 유형
다음은 에 허용되는 미디어 유형입니다 mediaType
field:
미디어 유형 | 설명 |
---|---|
image/jpeg | JPEG 이미지 |
image/png | PNG 이미지 |
image/apng | 애니메이션 PNG 이미지 |
image/avif | AV1 이미지 파일 형식 |
image/gif | GIF 이미지 |
image/svg+xml | SVG 이미지 |
image/webp | WebP 이미지 |
audio/wav | WAV 오디오 |
audio/mpeg | MP3 오디오 |
audio/flac | FLAC 오디오 |
audio/aac | AAC 오디오 |
audio/ogg | OGG 오디오 |
audio/mp4 | MP4 오디오 |
audio/x-aiff | AIFF 오디오 |
audio/x-ms-wma | WMA 오디오 |
audio/opus | Opus 오디오 |
video/mp4 | MP4 비디오 |
video/webm | WebM 비디오 |
video/quicktime | QuickTime 비디오 |
콘텐츠 해싱
콘텐츠를 해싱하여 imageHash
또는 mediaHash
필드에 사용하려면 SHA-256 해싱 알고리즘을 사용할 수 있습니다. 다음은 JavaScript에서 이를 수행하는 방법의 예시입니다:
사용 사례 예시
이것은 메인넷에 등록된 공식 Ippy 마스코트입니다. 우리의 프로토콜 탐색기에서 here에서 볼 수 있습니다.
이것은 메인넷에 등록된 공식 Ippy 마스코트입니다. 우리의 프로토콜 탐색기에서 here에서 볼 수 있습니다.
이것은 Suno에서 생성되고 우리의 테스트넷에 등록된 예시 노래입니다. 아래 예시를 우리의 프로토콜 탐색기에서 확인하세요.
여기서 주요 차이점은 aiMetadata
에 캐릭터 파일을 제공해야 한다는 것입니다. 원하는 캐릭터 파일을 제공하거나 this ElizaOS example을 템플릿으로 사용할 수 있습니다.
아래 예시를 우리의 프로토콜 탐색기에서 확인하세요.
선택적 속성
다음 속성들은 선택사항이지만 IP 자산에 대한 추가적인 맥락을 제공할 수 있습니다:
우리는 아직 IPA 메타데이터 표준을 정의하는 최선의 방법을 찾고 있습니다. 아래의 필드들은 언젠가 변경되거나 제거될 수 있습니다.
속성 이름 | 유형 | 설명 |
---|---|---|
ipType | string | IP 자산의 유형으로, 제작자가 임의로 정의할 수 있습니다. 예: “캐릭터”, “챕터”, “위치”, “아이템”, “음악” 등 |
relationships | IpRelationship[] | IPA의 직접적인 부모 자산과의 상세한 관계 정보, 예를 들어 APPEARS_IN , FINETUNED_FROM 등. 더 많은 예시는 here에서 확인하세요. |
watermarkImage | string | 워터마크가 이미 적용된 별도의 이미지입니다. 이를 통해 이 이미지를 사용하기로 선택한 앱들이 워터마크가 적용된 버전의 이미지를 렌더링할 수 있습니다. |
media | IpMedia[] | 지원 미디어의 배열. 미디어 유형은 아래에 정의되어 있습니다. |
app | StoryApp | 이는 Story에서 직접 검증된 애플리케이션에 할당됩니다(현재는 요청 기반). 각 App ID를 이름에 매핑할 것입니다. |
tags | string[] | 이 IPA를 표면화하는 데 도움이 될 수 있는 태그들 |
robotTerms | IPRobotTerms | 특정 에이전트에 대해 훈련 금지를 설정할 수 있습니다 |
해당 없음 | 해당 없음 | 다른 값들도 포함할 수 있습니다. |
유형 정의
관계 유형
속성에 사용할 수 있는 다양한 관계 유형입니다.relationships
속성.
스토리 관계
-
APPEARS_IN - 캐릭터가 챕터에 등장합니다.
-
BELONGS_TO - 챕터가 책에 속합니다.
-
PART_OF - 책이 시리즈의 일부입니다.
-
CONTINUES_FROM - 챕터가 이전 챕터에서 이어집니다.
-
LEADS_TO - 사건이 결과로 이어집니다.
-
FORESHADOWS - 사건이 미래의 발전을 암시합니다.
-
CONFLICTS_WITH - 캐릭터가 다른 캐릭터와 갈등합니다.
-
RESULTS_IN - 결정이 중요한 변화를 초래합니다.
-
DEPENDS_ON - 서브플롯이 메인 플롯에 의존합니다.
-
SETS_UP - 프롤로그가 이야기를 설정합니다.
-
FOLLOWS_FROM - 챕터가 이전 챕터에 이어집니다.
-
REVEALS_THAT - 반전이 예상치 못한 일이 일어났음을 드러냅니다.
-
DEVELOPS_OVER - 캐릭터가 이야기 전반에 걸쳐 발전합니다.
-
INTRODUCES - 챕터는 새로운 캐릭터나 요소를 INTRODUCES합니다.
-
RESOLVES_IN - 갈등은 특정 결과로 RESOLVES_IN됩니다.
-
CONNECTS_TO - 주제는 주요 내러티브와 CONNECTS_TO됩니다.
-
RELATES_TO - 서브플롯은 중심 주제와 RELATES_TO됩니다.
-
TRANSITIONS_FROM - 장면은 한 배경에서 다른 배경으로 TRANSITIONS_FROM합니다.
-
INTERACTED_WITH - 캐릭터는 다른 캐릭터와 INTERACTED_WITH합니다.
-
LEADS_INTO - 사건은 절정으로 LEADS_INTO됩니다.
PARALLEL - story 병렬로 또는 같은 시간대에 일어나는 일
AI 관계
-
TRAINED_ON - 모델은 데이터셋에 TRAINED_ON됩니다.
-
FINETUNED_FROM - 모델은 기본 모델에서 FINETUNED_FROM됩니다.
-
GENERATED_FROM - 이미지는 미세 조정된 모델에서 GENERATED_FROM됩니다.
-
REQUIRES_DATA - 모델은 훈련을 위해 데이터를 REQUIRES_DATA합니다.
-
BASED_ON - 리믹스는 특정 워크플로우에 BASED_ON됩니다.
-
INFLUENCES - 샘플 데이터는 모델 출력을 INFLUENCES합니다.
-
CREATES - 파이프라인은 미세 조정된 모델을 CREATES합니다.
-
UTILIZES - 워크플로우는 기본 모델을 UTILIZES합니다.
-
DERIVED_FROM - 미세 조정된 모델은 기본 모델에서 DERIVED_FROM됩니다.
-
PRODUCES - 모델은 생성된 이미지를 PRODUCES합니다.
-
MODIFIES - 리믹스는 기본 워크플로우를 MODIFIES합니다.
-
REFERENCES - AI 생성 이미지는 원본 데이터를 REFERENCES합니다.
-
OPTIMIZED_BY - 모델은 특정 알고리즘에 의해 OPTIMIZED_BY됩니다.
-
INHERITS - 미세 조정된 모델은 기본 모델의 특징을 INHERITS합니다.
-
APPLIES_TO - 미세 조정 과정은 모델에 APPLIES_TO됩니다.
-
COMBINES - 리믹스는 여러 데이터셋의 요소를 COMBINES합니다.
-
GENERATES_VARIANTS - 모델은 이미지의 변형을 GENERATES_VARIANTS합니다.
-
EXPANDS_ON - 미세 조정 과정은 기본 기능을 EXPANDS_ON합니다.
-
CONFIGURES - 워크플로우는 모델의 매개변수를 CONFIGURES합니다.
-
ADAPTS_TO - 미세 조정된 모델은 새로운 데이터에 ADAPTS_TO합니다.