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.
Engine | Engine Name | Character File |
---|---|---|
Eliza by ElizaOS | eliza |
Field | Type | Description |
---|---|---|
ai_agent (Newly added) | object | The configuration that define the AI agent connected with this NFT.
|
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.
|
properties | object | Additional properties that define the asset.
|
{
// 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',
},
}