Skip to content

Latest commit

 

History

History
72 lines (65 loc) · 8.09 KB

ai-nft-metadata.md

File metadata and controls

72 lines (65 loc) · 8.09 KB

AI-NFT Metadata

Creating AI-NFTs is just like traditional NFTs, with an extra field ai_agent that describes the configuration of an AI agent and the engine it uses, stored in the metadata.

Supported AI Engine

EngineEngine NameCharacter File
Eliza by ElizaOSeliza

AI-NFT Metadata JSON

Field Type Description
ai_agent (Newly added) object

The configuration that define the AI agent connected with this NFT.

  • engine (string): the engine used to run the AI agent. Default as "eliza".
  • character (object): the characterfile JSON that describes an AI agent. Check here.
name string Name of the asset.
description string Description of the asset.
image string URI pointing to the asset's logo.
animation_url string URI pointing to the asset's animation.
external_url string URI pointing to an external URL defining the asset — e.g. the game's main site.
attributes array

Array of attributes defining the characteristics of the asset.

  • trait_type (string): The type of attribute.
  • value (string): The value for that attribute.
properties object

Additional properties that define the asset.

  • files (array): Additional files to include with the asset.

    • uri (string): The file's URI.
    • type (string): The file's type. E.g. image/png, video/mp4, etc.
    • cdn (boolean, optional): Whether the file is served from a CDN.
  • category (string): A media category for the asset. E.g. video, image, etc.

Example

{
  // AI agent field
  ai_agent: {
    engine: "eliza",
    character: {
      // agent name
      name:"eliza",
      // background statements
      bio: [
        "Bio lines are each short snippets which can be composed together in a random order.",
        "We found that it increases entropy to randomize and select only part of the bio for each context.",
        "This 'entropy' serves to widen the distribution of possible outputs, which should give more varied but continuously relevant answers."
      ],
      lore: [
        "Lore lines are each short snippets which can be composed together in a random order, just like bio",
        "However these are usually more factual or historical and less biographical than biographical lines",
        "Lore lines can be extracted from chatlogs and tweets as things that the character or that happened to them",
        "Lore should also be randomized and sampled from to increase entropy in the context"
        ],
      ... //xxx.character.json from https://github.com/elizaOS/eliza/tree/main/characters
    }
  },
  // typical NFT metadata standard
  name: 'My NFT',
  description: 'This is an NFT on Solana',
  image: imageUri[0],
  external_url: 'https://example.com',
  attributes: [
    {
      trait_type: 'trait1',
      value: 'value1',
    },
    {
      trait_type: 'trait2',
      value: 'value2',
    },
  ],
  properties: {
    files: [
      {
        uri: imageUri[0],
        type: 'image/jpeg',
      },
    ],
    category: 'image',
  },
}