关于 nft
nft 是用于在区块链网络上执行 NFT 操作的 OpenClaw 技能,面向开发者及数字藏品应用。它通过 CLI 和 API 支持铸造、转移、查询元数据和验证所有权。
主要功能
- 01在支持的网络上铸造 NFT
- 02转移代币并估算 Gas
- 03获取代币元数据和所有者信息
- 04验证代币是否存在及其所有权
- 05执行合约操作,例如授权
适用场景
- 01为数字艺术或藏品创建 NFT
- 02在区块链应用中核查所有权和元数据
- 03在钱包地址间转移代币
- 04在 dApp 中自动执行 NFT 交互
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill nft安装后在 Claude Code 中输入/nft确认已加载。
详细介绍
用途
此技能可让 OpenClaw 使用 Web3 协议处理区块链网络上的 NFT 相关任务,包括铸造、转移、查询和管理 NFT。
适用场景
- 构建需要创建 NFT 的应用,例如数字艺术品市场或收藏品应用。
- 查询区块链项目中的 NFT 所有权或元数据。
- 在涉及加密钱包或智能合约且需要转移或验证 NFT 的场景中使用。
- 集成 dApp,以自动执行 Ethereum 或 Solana 等网络上的 NFT 交互。
主要功能
- 在受支持的区块链上铸造新的 NFT(例如通过 ERC-721 标准在 Ethereum 上铸造)。
- 在钱包地址之间转移 NFT,并估算 Gas 费。
- 获取并显示 NFT 元数据,包括 Token URI 和所有者详情。
- 通过区块链查询验证 NFT 是否存在及其所有权。
- 与智能合约交互以执行高级操作,例如批准转移。
- 特定功能:通过标志支持不同网络(例如,EVM 链使用
--network ethereum,SPL 代币使用--network solana)。
使用模式
执行命令前,始终先设置环境变量 $NFT_API_KEY 进行身份验证。对于脚本,请使用错误处理代码块来处理网络故障。
以编程方式铸造 NFT:
- 导出密钥:
export NFT_API_KEY=your_api_key - 在脚本中使用:
claw nft create --network ethereum --wallet 0xYourWalletAddress
查询时,请串联命令:先获取元数据,再进行处理。自动化示例模式:在循环中使用 claw nft query 批量检查所有权,并确保遵守速率限制(例如,Ethereum 上每分钟少于 10 次调用)。
配置格式:使用 JSON 文件存储元数据,例如 {"name": "MyNFT", "description": "Token description", "image": "ipfs://hash"}。通过 --metadata path/to/file.json 加载。
常用命令/API
-
CLI 命令:
claw nft create --network <chain> --wallet <address> --metadata <file.json>
标志:--network(例如,ethereum、solana)、--gas-limit 210000用于自定义 Gas 限制、--dry-run用于模拟而不执行。 示例:claw nft create --network ethereum --wallet 0x123abc --metadata nft_data.json(创建 NFT 并返回 Token ID)。 -
CLI 命令:
claw nft transfer --network <chain> --from <sender_address> --to <receiver_address> --tokenId <id>
标志:--approve-first用于处理授权、--gas-price 20gwei用于设置优先级。 示例:claw nft transfer --network ethereum --from 0x123abc --to 0x456def --tokenId 1 -
API 端点:POST /api/nft/create
请求体:{"network": "ethereum", "wallet": "0x123abc", "metadata": {"name": "ArtPiece"}}
标头:包含Authorization: Bearer $NFT_API_KEY。响应:包含 { "tokenId": "123", "transactionHash": "0xhash" } 的 JSON。 -
API 端点:GET /api/nft/{tokenId}/metadata
查询参数:?network=ethereum。示例:curl -H "Authorization: Bearer $NFT_API_KEY" https://api.openclaw.com/api/nft/123/metadata
身份验证:所有操作都需要身份验证;将 $NFT_API_KEY 设置为环境变量。配置时,请使用 .env 文件:NFT_API_KEY=sk_123abc。
集成说明
在 OpenClaw 工作流中导入此技能以进行集成,例如在脚本中使用 import skill nft。确保已配置区块链 RPC 端点,例如设置 $ETHEREUM_RPC_URL=https://mainnet.infura.io/v3/your_project_id。
对于智能合约:在 JSON 配置文件中提供 ABI,例如 {"abi": [{"constant": true, "inputs": [], "name": "ownerOf", "outputs": [{"name": "", "type": "address"}], "type": "function"} ] },并通过 --abi path/to/abi.json 传入。
与其他技能结合使用:配合 "blockchain" 集群技能管理钱包——例如,先调用 claw wallet balance 检查资金,再运行 claw nft create。
测试:添加 --testnet 标志,在测试网环境中运行;该标志会切换到 Goerli(Ethereum)等网络。
错误处理
始终对命令使用 try-catch 块,例如,在 Python 脚本中:try: subprocess.run(['claw', 'nft', 'create', '--network', 'ethereum']) except subprocess.CalledProcessError as e: print(e.output)。
常见错误:
- 网络问题:验证
$ETHEREUM_RPC_URL,检查是否出现“connection refused”,并通过指数退避重试(例如,等待 5s,然后等待 10s)。 - 输入无效:使用正则表达式验证钱包地址(例如,在执行命令前使用
if not re.match(r'^0x[a-fA-F0-9]{40}$', address): raise ValueError)。 - 身份验证失败:如果缺少
$NFT_API_KEY,命令会返回 401;请通过提示用户进行设置或正常退出来处理。 - Gas 错误:遇到“insufficient funds”时,建议先使用
claw nft estimate-gas --network ethereum --command create检查余额。
强制要求:执行任何操作前,先运行健康检查:claw nft status --network ethereum,以验证节点连通性。
具体使用示例
-
在 Ethereum 上铸造 NFT:
设置:运行export NFT_API_KEY=your_key,并在metadata.json中准备元数据,例如{"name": "OpenClawArt", "description": "AI-generated piece"}。
命令:claw nft create --network ethereum --wallet 0xYourWallet --metadata metadata.json
这会铸造 NFT、输出 Token ID,并使用你的钱包签署交易。 -
转移 NFT:
前提条件:确保发送方已批准转移。
命令:claw nft transfer --network ethereum --from 0xSenderWallet --to 0xReceiverWallet --tokenId 42 --approve-first
这会转移指定的 NFT、自动处理 Gas,并返回用于验证的交易哈希。
图谱关系
- 相关内容:区块链集群(例如,与钱包和智能合约技能共享依赖项)。
- 标签:区块链、NFT、加密货币(可通过这些标签与其他技能组合查询)。
- 关联技能:钱包(用于资金操作)、智能合约(用于自定义 NFT 逻辑)和 Web3(用于更广泛的生态系统集成)。