Manifest

Description of the required manifest schemas

Each deployment bundle should contain an xnft.json file at the root level of the .zip that contains the important information for describing, defining properties, and account linking for the xNFT being published.

Apps

type AppBuildJson = {
  kind: 'app'
  storage: 'arweave' | 'aws' | 'ipfs' // backend for storing published content
  name: string // 32 character limit for seed constraints
  version: string // Semantic version of the xNFT
  description: string // 40 character maximum
  longDescription?: string // optional longer form description
  website: string
  installAuthority?: string // Base-58 public key
  installVault?: string // Base-58 public key
  price?: number // Installation price in SOL
  supply?: number // Number of installations to allow (unset/undefined is infinite)
  tag?: 'none' | 'defi' | 'game' | 'nfts' // Defaults to 'none'
  royaltiesPercentage?: number
  programIds?: string[] // List of program public keys that are used
  props?: any,
  contact: string // Generic field for entering a method of contact
  entrypoints: {
    // Relative paths to the platform's code entrypoint files
    default: {
      android?: string
      ios?: string
      web?: string
    }
    [entry: string]: {
      android?: string
      ios?: string
      web?: string
    }
  }
  icon: {
    // Relative paths to the asset file
    sm?: string
    md?: string
    lg?: string
  }
  screenshots?: string[] // Relative paths to asset files
  splash?: {
    src: string // Relative path to asset file
    height: number
    width: number
  }[]
}

Collectibles

Most of the properties that are configurable for an App xNFT are removed from the configuration file for Collectible types and are inherited from the metadata of the associated collectible asset.

type CollectibleBuildJson = {
  kind: 'collectible'
  storage: 'arweave' | 'aws' | 'ipfs' // backend for storing published content
  version: string // Semantic version of the xNFT
  collectibleMint: string // The public key of the associated collectible's token mint
  tag?: 'none' | 'defi' | 'game' | 'nfts' // Defaults to 'none'
  programIds?: string[] // List of program public keys that are used
  props?: any,
  contact: string // Generic field for entering a method of contact
  entrypoints: {
    // Relative paths to the platform's code entrypoint files
    default: {
      android?: string
      ios?: string
      web?: string
    }
    [entry: string]: {
      android?: string
      ios?: string
      web?: string
    }
  }
  screenshots?: string[] // Relative paths to asset files
  splash?: {
    src: string // Relative path to asset file
    height: number
    width: number
  }[]
}

Last updated