关于 nft
nft 是用于 Stacks L2 上 SIP-009 NFT 查询与转移的命令行技能。它可查看持有量、元数据、所有者、集合信息和转移历史;查询无需钱包,转移需解锁钱包。
主要功能
- 01按地址或集合筛选 NFT 持有量
- 02查询 NFT 的 SIP-016 元数据
- 03查看 NFT 当前所有者
- 04获取集合信息及合约函数
- 05分页查看集合转移历史
- 06向指定地址转移 NFT
适用场景
- 01盘点地址持有的 NFT
- 02核对 NFT 元数据和当前所有者
- 03查看集合供应量及可用函数
- 04追踪集合的转移记录或发送 NFT
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aibtcdev/ skills --skill nft安装后在 Claude Code 中输入/nft确认已加载。
附带文件AGENT.mdnft.ts
详细介绍
NFT 技能
在 Stacks L2 上提供 SIP-009 NFT(非同质化代币)操作。转账操作需要已解锁的钱包(请先运行 bun run wallet/wallet.ts unlock)。查询操作无需钱包。
用法
bun run nft/nft.ts <subcommand> [options]
子命令
get-holdings
列出某个地址拥有的所有 NFT。
bun run nft/nft.ts get-holdings [--address <addr>] [--contract-id <id>] [--limit <n>] [--offset <n>]
选项:
--address(可选)— 要查询的 Stacks 地址(若省略,则使用当前活动钱包)--contract-id(可选)— 按指定的 NFT 集合合约 ID 筛选--limit(可选)— 结果数量上限(默认值:20)--offset(可选)— 分页偏移量(默认值:0)
输出:
{
"address": "SP2...",
"network": "mainnet",
"total": 5,
"nfts": [
{ "collection": "SP2....nft-contract::my-nft", "tokenId": "u1" },
{ "collection": "SP2....nft-contract::my-nft", "tokenId": "u2" }
]
}
get-metadata
获取特定 NFT 的元数据(SIP-016)。
bun run nft/nft.ts get-metadata --contract-id <id> --token-id <n>
选项:
--contract-id(必填)— NFT 集合合约 ID(例如,SP2....my-nft)--token-id(必填)— NFT 的代币 ID(整数)
输出:
{
"contractId": "SP2....my-nft",
"tokenId": 1,
"network": "mainnet",
"metadata": {
"name": "My NFT #1",
"description": "...",
"image": "https://..."
}
}
transfer
将 NFT(SIP-009)转给接收方地址。需要已解锁的钱包。
bun run nft/nft.ts transfer --contract-id <id> --token-id <n> --recipient <addr> [--fee low|medium|high|<microStx>]
选项:
--contract-id(必填)— NFT 集合合约 ID--token-id(必填)— 要转移的 NFT 的代币 ID(整数)--recipient(必填)— 接收方的 Stacks 地址--fee(可选)— 费用预设(low|medium|high)或 micro-STX 金额;若省略,则自动估算
输出:
{
"success": true,
"txid": "abc123...",
"from": "SP2...",
"recipient": "SP3...",
"contractId": "SP2....my-nft",
"tokenId": 1,
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
get-owner
获取特定 NFT 的当前所有者。
bun run nft/nft.ts get-owner --contract-id <id> --token-id <n>
选项:
--contract-id(必填)— NFT 集合合约 ID--token-id(必填)— NFT 的代币 ID(整数)
输出:
{
"contractId": "SP2....my-nft",
"tokenId": 1,
"network": "mainnet",
"owner": "SP2..."
}
get-collection-info
获取 NFT 集合的信息,包括名称、总供应量和可用函数。
bun run nft/nft.ts get-collection-info --contract-id <id>
选项:
--contract-id(必填)— NFT 集合合约 ID
输出:
{
"network": "mainnet",
"contractId": "SP2....my-nft",
"name": "my-nft",
"totalSupply": 10000,
"functions": ["transfer", "get-owner", "get-last-token-id", "get-token-uri"]
}
get-history
获取某个集合中 NFT 的转账历史记录。
bun run nft/nft.ts get-history --contract-id <id> [--limit <n>] [--offset <n>]
选项:
--contract-id(必填)— NFT 集合合约 ID--limit(可选)— 结果数量上限(默认值:20)--offset(可选)— 分页偏移量(默认值:0)
输出:
{
"contractId": "SP2....my-nft",
"network": "mainnet",
"total": 150,
"events": [
{
"sender": "SP2...",
"recipient": "SP3...",
"tokenId": "u1",
"txId": "abc123...",
"blockHeight": 150000
}
]
}
备注
- 查询操作(get-holdings、get-metadata、get-owner、get-collection-info、get-history)使用公开的 Hiro API
- 转账操作需要已解锁的钱包
- NFT 代币 ID 通常为从 1 开始的正整数
- 集合合约 ID 的格式为:
SP<deployer-address>.<contract-name>
评论
支持 Markdown