stellar-non-fungible
Generate custom non-fungible token contracts compliant with SEP-50 standards using OpenZeppelin libraries. Configure features like burnability, enumerability, minting, and access control. Returns source code in Markdown format without writing to disk.
Instructions
Make a non-fungible token per the Non-Fungible Token Standard, compatible with SEP-50, similar to ERC-721.
Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.
Input Schema
Name | Required | Description | Default |
---|---|---|---|
access | No | The type of access control to provision. Ownable is a simple mechanism with a single account authorized for all privileged actions. Roles is a flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts. | |
burnable | No | Whether token holders will be able to destroy their tokens | |
consecutive | No | To batch mint NFTs instead of minting them individually (sequential minting is mandatory). | |
enumerable | No | Whether the NFTs are enumerable (can be iterated over). | |
info | No | Metadata about the contract and author | |
mintable | No | Whether privileged accounts will be able to create more supply or emit more tokens | |
name | Yes | The name of the contract | |
pausable | No | Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response. | |
sequential | No | Whether the IDs of the minted NFTs will be sequential. | |
symbol | Yes | The short symbol for the token | |
upgradeable | No | Whether the contract can be upgraded. |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"access": {
"description": "The type of access control to provision. Ownable is a simple mechanism with a single account authorized for all privileged actions. Roles is a flexible mechanism with a separate role for each privileged action. A role can have many authorized accounts.",
"enum": [
"ownable",
"roles"
],
"type": "string"
},
"burnable": {
"description": "Whether token holders will be able to destroy their tokens",
"type": "boolean"
},
"consecutive": {
"description": "To batch mint NFTs instead of minting them individually (sequential minting is mandatory).",
"type": "boolean"
},
"enumerable": {
"description": "Whether the NFTs are enumerable (can be iterated over).",
"type": "boolean"
},
"info": {
"additionalProperties": false,
"description": "Metadata about the contract and author",
"properties": {
"license": {
"description": "The license used by the contract, default is \"MIT\"",
"type": "string"
},
"securityContact": {
"description": "Email where people can contact you to report security issues. Will only be visible if contract source code is verified.",
"type": "string"
}
},
"type": "object"
},
"mintable": {
"description": "Whether privileged accounts will be able to create more supply or emit more tokens",
"type": "boolean"
},
"name": {
"description": "The name of the contract",
"type": "string"
},
"pausable": {
"description": "Whether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response.",
"type": "boolean"
},
"sequential": {
"description": "Whether the IDs of the minted NFTs will be sequential.",
"type": "boolean"
},
"symbol": {
"description": "The short symbol for the token",
"type": "string"
},
"upgradeable": {
"description": "Whether the contract can be upgraded.",
"type": "boolean"
}
},
"required": [
"name",
"symbol"
],
"type": "object"
}