Skip to main content
Glama

OpenZeppelin Cairo Contracts

Cairo ERC721

cairo-erc721

Make a non-fungible token per the ERC-721 standard.

Returns the source code of the generated contract, formatted in a Markdown code block. Does not write to disk.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
infoNoMetadata about the contract and author
nameYesThe name of the contract
votesNoWhether to keep track of individual units for voting in on-chain governance. Voting durations can be expressed as block numbers or timestamps.
accessNo
macrosNoThe macros to use for the contract.
symbolYesThe short symbol for the token
appNameNoRequired when votes is enabled, for hashing and signing typed structured data. Name for domain separator implementing SNIP12Metadata trait. Prevents two applications from producing the same hash.
baseUriNoA base uri for the non-fungible token.
wrapperNoWhether to include ERC721Wrapper functionality for wrapping an underlying ERC721.
burnableNoWhether token holders will be able to destroy their tokens
mintableNoWhether privileged accounts will be able to create more supply or emit more tokens
pausableNoWhether privileged accounts will be able to pause specifically marked functionality. Useful for emergency response.
appVersionNoRequired when votes is enabled, for hashing and signing typed structured data. Version for domain separator implementing SNIP12Metadata trait. Prevents two versions of the same application from producing the same hash.
enumerableNoWhether to allow on-chain enumeration of all tokens or those owned by an account. Increases gas cost of transfers.
uriStorageNoAllows updating token URIs for individual token IDs.
consecutiveNoEnables gas-efficient batch minting of consecutive token IDs during construction (ERC-2309). The contract owner must call `mint_consecutive` from the constructor to issue the initial batch. Cannot be combined with enumerable.
royaltyInfoNoProvides information for how much royalty is owed and to whom, based on a sale price. Follows ERC-2981 standard.
upgradeableNoWhether the smart contract is upgradeable.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavior disclosure. It discloses two key behaviors: the result is source code in a Markdown code block, and the tool 'does not write to disk.' This gives an agent a clear, non-destructive mental model of the side effects, though it does not discuss rate limits, network calls, or other indirect side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no fluff. The core purpose is front-loaded, and the output format/side-effect statement is placed immediately after. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a large, complex tool with 18 parameters and nested objects, but the schema covers those details well. The description fills the main gap left by the absent output schema by stating that a Markdown-formatted source code block is returned and nothing is written to disk. It is complete for a source-generation tool, though it could have added one sentence about the generated contract being intended for deployment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 94%, so the input schema already documents the parameters thoroughly; the description need not repeat them. The description adds no new parameter meaning beyond the schema, which matches the baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a precise action: 'Make a non-fungible token per the ERC-721 standard.' This identifies both the resource type and the standard, which clearly distinguishes it from sibling tools like cairo-erc20 and cairo-erc1155. It also states the return format, so the purpose is fully transparent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use 'when an ERC-721 NFT contract is needed' is implied by the description, but no explicit alternatives or exclusions are given. An agent can infer the choice vs. ERC-20 or ERC-1155 from the token standard, but the description does not state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation4/5

Each tool maps to a clearly named contract type—account, ERC standards, governance, multisig, vesting—so agents can generally tell them apart. However, cairo-custom is a generic 'make any custom smart contract' option that overlaps conceptually with all the specialized generators, creating minor ambiguity.

Naming Consistency5/5

All tools follow the same cairo-<type> naming convention, using lowercase and hyphens consistently. This makes the tool family predictable and easy to navigate.

Tool Count5/5

Nine tools is a well-scoped set for a contract generation server. Each tool represents a common smart contract template, and there are enough options to cover standard use cases without overwhelming the tool surface.

Completeness4/5

The set covers the major OpenZeppelin Cairo contract categories: tokens, account abstraction, governance, multisig, vesting, and a custom fallback. A few common patterns like proxy or access control are not explicitly included, but the generic cairo-custom tool helps fill those gaps.

Resources