Evolution SDK
ModulesPlutus

plutus/CIP68Metadata.ts

CIP68Metadata overview

CIP-68 Datum Metadata Standard for NFTs and tokens


Table of contents


utils

CIP68Datum

CIP-68 Datum Structure

datum = Constr(0, [metadata, version, extra])

  • metadata: Arbitrary PlutusData - structure varies by token class:
    • 222 (NFT): Map with name, image, description, files (CIP-25 structure)
    • 333 (FT): Map with name, description, ticker, url, decimals, logo
    • 444 (RFT): Map combining NFT + FT fields plus decimals
  • version: 1, 2, or 3 depending on token class
  • extra: Custom plutus data (minimum Unit/Void)

Signature

export declare const CIP68Datum: TSchema.Struct<{
  metadata: Schema.SchemaClass<Data.Data, Data.Data, never>
  version: TSchema.Integer
  extra: TSchema.Array<Schema.SchemaClass<Data.Data, Data.Data, never>>
}>

CIP68Datum (type alias)

Signature

export type CIP68Datum = typeof CIP68Datum.Type

Codec

Signature

export declare const Codec: {
  toData: (
    a: { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] },
    overrideOptions?: ParseOptions
  ) => Data.Constr
  fromData: (
    i: Data.Constr,
    overrideOptions?: ParseOptions
  ) => { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] }
  toCBORHex: (
    a: { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] },
    overrideOptions?: ParseOptions
  ) => string
  toCBORBytes: (
    a: { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] },
    overrideOptions?: ParseOptions
  ) => any
  fromCBORHex: (
    i: string,
    overrideOptions?: ParseOptions
  ) => { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] }
  fromCBORBytes: (
    i: any,
    overrideOptions?: ParseOptions
  ) => { readonly metadata: Data.Data; readonly version: bigint; readonly extra: readonly Data.Data[] }
}

FT_TOKEN_LABEL

CIP-68 FT (Fungible Token) Label (333 in hex)

Signature

export declare const FT_TOKEN_LABEL: 333

NFT_TOKEN_LABEL

CIP-68 NFT Token Label (222 in hex)

Signature

export declare const NFT_TOKEN_LABEL: 222

REFERENCE_TOKEN_LABEL

CIP-68 Reference Token Label (100 in hex)

Signature

export declare const REFERENCE_TOKEN_LABEL: 100

RFT_TOKEN_LABEL

CIP-68 RFT (Rich Fungible Token) Label (444 in hex)

Signature

export declare const RFT_TOKEN_LABEL: 444