Tooluck logoTooluck
SKILL.md

nft-standards

Agent skill fromwshobson/agents

Implement NFT standards (ERC-721, ERC-1155) with proper metadata handling, minting strategies, and marketplace integration. Use when creating NFT contracts, building NFT marketplaces, or implementing digital asset systems.

How to install nft-standards

install nft-standards
# install the agents pack with the skills CLI
npx skills add wshobson/agents

# or add only this skill to Claude Code: copy the folder

plugins/blockchain-web3/skills/nft-standards/

# into

~/.claude/skills/nft-standards/ (all projects)

.claude/skills/nft-standards/ (one project)

plugins/blockchain-web3/skills/nft-standards/SKILL.md

MITFull file
1# NFT Standards
2
3Master ERC-721 and ERC-1155 NFT standards, metadata best practices, and advanced NFT features.
4
5## When to Use This Skill
6
7- Creating NFT collections (art, gaming, collectibles)
8- Implementing marketplace functionality
9- Building on-chain or off-chain metadata
10- Creating soulbound tokens (non-transferable)
11- Implementing royalties and revenue sharing
12- Developing dynamic/evolving NFTs
13
14## ERC-721 (Non-Fungible Token Standard)
15
16```solidity
17// SPDX-License-Identifier: MIT
18pragma solidity ^0.8.0;
19
20import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
21import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
22import "@openzeppelin/contracts/access/Ownable.sol";
23import "@openzeppelin/contracts/utils/Counters.sol";
24
25contract MyNFT is ERC721URIStorage, ERC721Enumerable, Ownable {
26 using Counters for Counters.Counter;
27 Counters.Counter private _tokenIds;
28
29 uint256 public constant MAX_SUPPLY = 10000;
30 uint256 public constant MINT_PRICE = 0.08 ether;
31 uint256 public constant MAX_PER_MINT = 20;
32
33 constructor() ERC721("MyNFT", "MNFT") {}
34
35 function mint(uint256 quantity) external payable {
36 require(quantity > 0 && quantity <= MAX_PER_MINT, "Invalid quantity");
37 require(_tokenIds.current() + quantity <= MAX_SUPPLY, "Exceeds max supply");
38 require(msg.value >= MINT_PRICE * quantity, "Insufficient payment");
39
40 for (uint256 i = 0; i < quantity; i++) {
41…

Excerpt shown under the repository's MIT license.

More skills in agents

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates