SuperAPI AI 工具集

nft

智能体与模型

查看项目

更新于 10-16 08:25

技能介绍

用途

该技能让 OpenClaw 能够处理区块链网络上的 NFT 相关任务,包括使用 web3 协议进行铸造、转移、查询和管理 NFT。

适用场景

  • 构建需要创建 NFT 的应用时,例如数字艺术市场或收藏品平台。
  • 在区块链项目中查询 NFT 所有权或元数据。
  • 涉及加密钱包或智能合约、需要转移或验证 NFT 的场景。
  • 与 dApp 集成,在以太坊或 Solana 等网络上自动化 NFT 交互。

主要能力

  • 在支持的区块链上铸造新 NFT(例如通过 ERC-721 标准在以太坊上)。
  • 在钱包地址之间转移 NFT,并估算 gas 费用。
  • 检索并显示 NFT 元数据,包括 token URI 和所有者详情。
  • 通过区块链查询验证 NFT 的存在和所有权。
  • 与智能合约交互以执行高级操作,例如批准转移。
  • 通过标志支持不同网络(例如 --network ethereum 用于 EVM 链,--network solana 用于 SPL 代币)。

使用方式

始终先通过设置环境变量 $NFT_API_KEY 进行认证,然后再执行命令。对于脚本,将调用包裹在错误处理块中以管理网络故障。

以编程方式铸造 NFT:

  1. 导出密钥:export NFT_API_KEY=your_api_key
  2. 在脚本中使用:claw nft create --network ethereum --wallet 0xYourWalletAddress

查询时,可链式执行命令:先获取元数据,再处理它。自动化示例模式:在循环中使用 claw nft query 进行批量所有权检查,注意速率限制(例如以太坊上 <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(创建并返回 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。响应:JSON,包含 { "tokenId": "123", "transactionHash": "0xhash" }。

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(以太坊)等网络。

错误处理

  • 始终对命令使用 try-catch 块,例如在 Python 脚本中:try: subprocess.run(['claw', 'nft', 'create', '--network', 'ethereum']) except subprocess.CalledProcessError as e: print(e.output)。
  • 常见错误:
    • 网络问题:通过验证 $ETHEREUM_RPC_URL 检查“connection refused”,并使用指数退避重试(例如等待 5 秒,然后 10 秒)。
    • 无效输入:在执行命令前用正则验证钱包地址(例如 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 以验证节点连通性。

具体使用示例

在以太坊上铸造 NFT:

  1. 设置:export NFT_API_KEY=your_key,并在 metadata.json 中准备元数据,如 {"name": "OpenClawArt", "description": "AI-generated piece"}。
  2. 命令:claw nft create --network ethereum --wallet 0xYourWallet --metadata metadata.json
  3. 这将铸造 NFT,输出 token ID,并使用你的钱包签名交易。

转移 NFT:

  1. 前提条件:确保发送者已批准转移。
  2. 命令:claw nft transfer --network ethereum --from 0xSenderWallet --to 0xReceiverWallet --tokenId 42 --approve-first
  3. 这将转移指定的 NFT,自动处理 gas,并返回交易哈希以供验证。

图谱关系

  • 相关:blockchain 集群(例如与 wallet 和 smart-contract 技能共享依赖)。
  • 标签:blockchain、nft、crypto(通过这些标签与其他技能连接以进行组合查询)。
  • 连接的技能:wallet(用于资金操作)、smart-contracts(用于自定义 NFT 逻辑)和 web3(用于更广泛的生态集成)。