{
  "schemaVersion": "1.0",
  "item": {
    "slug": "nadname-agent",
    "name": "NadName Agent",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/dAAAb/nadname-agent",
    "canonicalUrl": "https://clawhub.ai/dAAAb/nadname-agent",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/nadname-agent",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nadname-agent",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package.json",
      "scripts/check-name.js",
      "scripts/my-names.js",
      "scripts/register-name.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/nadname-agent"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/nadname-agent",
    "agentPageUrl": "https://openagent3.xyz/skills/nadname-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nadname-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nadname-agent/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "🌐 NadName Agent v2.0 - .nad Names on Monad",
        "body": "Register permanent .nad names on Monad blockchain via Nad Name Service with real API integration\n\nTL;DR: Get yourname.nad on Monad. One-time fee, lifetime ownership. Now with real NAD API integration and accurate pricing!"
      },
      {
        "title": "What is NNS?",
        "body": "Nad Name Service (NNS) is a web3 name service built on Monad blockchain that maps human-readable names like agent.nad to cryptocurrency addresses and metadata.\n\nPermanent ownership — One-time registration fee, no renewals\nNFT-based — Names are tradeable NFTs\nEmoji support — Use 🦞.nad or 你好.nad\nFast & cheap — Built on Monad, the fastest blockchain\nProfile customization — Set avatar, social links, text records"
      },
      {
        "title": "Key Details",
        "body": "Blockchain: Monad (Chain ID: 143)\nRPC: https://rpc.monad.xyz\nContract: 0xE18a7550AA35895c87A1069d1B775Fa275Bc93Fb\nWebsite: https://app.nad.domains\nDocs: https://docs.nad.domains"
      },
      {
        "title": "Option 1: Environment Variable (Recommended ✅)",
        "body": "export PRIVATE_KEY=\"0x...\"\nnode scripts/check-name.js myname\n\n✅ Safest: Private key exists only in memory, never saved to disk."
      },
      {
        "title": "Option 2: Managed Mode (Encrypted)",
        "body": "node scripts/register-name.js --managed --name myname\n\n✅ Secure: Creates encrypted keystore, password-protected."
      },
      {
        "title": "⚠️ Critical Security Rules",
        "body": "NEVER hardcode private keys in scripts\nNEVER commit private keys to git\nNEVER auto-detect wallet paths (security risk)\nONLY use PRIVATE_KEY env var or --managed encrypted keystore\nPrivate key files should be chmod 600"
      },
      {
        "title": "1️⃣ Check Name Availability",
        "body": "# Check if name is available and get pricing\nnode scripts/check-name.js myname\n\n# Output example:\n# ✅ myname.nad is available!\n# 💰 Price: 649 MON (base price)\n# 🎄 Discount: 50% (Christmas special)\n# 💸 Final price: 324.5 MON"
      },
      {
        "title": "2️⃣ Register Name",
        "body": "# Using environment variable\nexport PRIVATE_KEY=\"0x...\"\nnode scripts/register-name.js --name myname\n\n# Set as primary name too\nnode scripts/register-name.js --name myname --set-primary\n\n# Using managed mode (encrypted keystore)\nnode scripts/register-name.js --managed --name myname --set-primary"
      },
      {
        "title": "3️⃣ List Your Names",
        "body": "# List names owned by your wallet\nnode scripts/my-names.js"
      },
      {
        "title": "📦 Scripts Reference",
        "body": "ScriptPurposeNeeds Private Keycheck-name.jsCheck availability & pricing❌register-name.jsRegister .nad name✅my-names.jsList owned names❌ (reads from address)"
      },
      {
        "title": "check-name.js",
        "body": "Check if a .nad name is available and get current pricing:\n\nnode scripts/check-name.js <name>\nnode scripts/check-name.js agent\nnode scripts/check-name.js 🦞"
      },
      {
        "title": "register-name.js",
        "body": "Register a new .nad name:\n\n# Basic registration\nnode scripts/register-name.js --name myname\n\n# Register and set as primary\nnode scripts/register-name.js --name myname --set-primary\n\n# Using managed encrypted keystore\nnode scripts/register-name.js --managed --name myname\n\n# Dry run to check costs without sending transaction\nnode scripts/register-name.js --name myname --dry-run\n\n# With referrer for potential discounts\nnode scripts/register-name.js --name myname --referrer 0x...\n\nFlags:\n\n--name <name> - Name to register (required)\n--set-primary - Set as primary name after registration\n--managed - Use encrypted keystore (creates if doesn't exist)\n--address <addr> - Custom address to use (defaults to wallet address)\n--dry-run - Show what would be done without sending transaction\n--referrer <addr> - Referrer address for discounts"
      },
      {
        "title": "my-names.js",
        "body": "List all .nad names owned by an address:\n\n# Use wallet from PRIVATE_KEY env var\nnode scripts/my-names.js\n\n# Check specific address\nnode scripts/my-names.js --address 0x...\n\n# Use managed keystore\nnode scripts/my-names.js --managed"
      },
      {
        "title": "v2.0 Registration Flow",
        "body": "The new registration process follows CloudLobster's discovered pattern:\n\nStep 1: Get Registration Data\n\nPOST https://api.nad.domains/api/register-request\nBody: {\n  \"name\": \"myname\",\n  \"owner\": \"0x...\",\n  \"setAsPrimary\": true,\n  \"referrer\": null,\n  \"paymentToken\": \"0x0000000000000000000000000000000000000000\"\n}\n\nResponse: {\n  \"registerData\": {...},\n  \"signature\": \"0x...\",\n  \"price\": \"324.5\"\n}\n\nStep 2: Contract Call\n\nawait contract.registerWithSignature(registerData, signature, {\n  value: ethers.parseEther(price),\n  gasLimit: estimatedGas * 2n  // 2x safety buffer\n});"
      },
      {
        "title": "Contract Interaction",
        "body": "Contract: 0xE18a7550AA35895c87A1069d1B775Fa275Bc93Fb\nMethod: registerWithSignature(registerData, signature) with server co-signature\nGas: ~650,000-970,000 gas for registration (2x buffer applied automatically)\nPricing: Real-time from NAD API\nPayment: MON tokens sent as transaction value"
      },
      {
        "title": "Supported Names",
        "body": "Length: 1-63 characters\nCharacters: a-z, 0-9, emojis, international characters\nExamples: agent.nad, 🦞.nad, 你好.nad, salmo.nad"
      },
      {
        "title": "Profile Features",
        "body": "After registration, you can customize:\n\nAvatar image\nSocial media links\nText records (email, website, etc.)\nPrimary name setting"
      },
      {
        "title": "Basic Bot Registration",
        "body": "export PRIVATE_KEY=\"0x...\"\nnode scripts/check-name.js mybot\n# ✅ mybot.nad is available!\n# 💰 Price: 324.5 MON\n\nnode scripts/register-name.js --name mybot --set-primary\n# 🎉 Registration successful!"
      },
      {
        "title": "Dry Run Testing",
        "body": "# Test registration without spending MON\nnode scripts/register-name.js --name mybot --dry-run\n# 🏃‍♂️ DRY RUN MODE - No transaction will be sent\n# ✅ Registration data looks valid\n# ⛽ Estimated gas cost: 0.002 MON\n# 💸 Total cost: 324.502 MON"
      },
      {
        "title": "Emoji Names",
        "body": "node scripts/check-name.js 🤖\nnode scripts/register-name.js --name 🤖 --dry-run"
      },
      {
        "title": "Secure Managed Setup",
        "body": "# First time setup\nnode scripts/register-name.js --managed --name myagent --dry-run\n# Enter password when prompted\n\n# Future use\nnode scripts/my-names.js --managed\n# Enter same password"
      },
      {
        "title": "🌐 Links",
        "body": "NNS Website: https://app.nad.domains\nDocumentation: https://docs.nad.domains\nMonad Explorer: https://explorer.monad.xyz\nGet MON tokens: https://bridge.monad.xyz"
      },
      {
        "title": "🛡️ Security Audit Checklist",
        "body": "Before using this skill:\n\n✅ No hardcoded private keys\n✅ No auto-detection of external wallet paths\n✅ Environment variables only or encrypted keystore\n✅ No --no-sandbox browser usage\n✅ No remote code execution\n✅ Proper file permissions (600) for sensitive files\n✅ Clear security warnings in documentation\n\nThis skill follows OpenClaw security best practices and should pass VirusTotal scanning."
      },
      {
        "title": "v2.0.0 (2026-02-09) - Real API Integration",
        "body": "🚀 Breaking: Real NAD API integration with registerWithSignature\n🔍 Real-time name availability checking via API endpoints\n💰 Real-time pricing from NAD API\n⛽ Dynamic gas estimation with 2x safety buffer (~1,000,000 gas)\n🏃‍♂️ --dry-run flag for testing without spending tokens\n🔗 --referrer support for potential discounts\n📊 Better error handling and transaction feedback\n🙏 Thanks to CloudLobster for testing and discovering the real flow!\n\nv2.0.0 Improvements Based on CloudLobster's Feedback:\n\n❌ Removed hardcoded pricing and fake availability checks\n✅ Real POST /api/register-request → registerWithSignature flow\n✅ Proper gas estimation (646K estimate → 969K actual, now with 2x buffer)\n✅ Server co-signature integration for NNS backend validation"
      },
      {
        "title": "v1.0.0 (2026-02-09)",
        "body": "🎉 Initial release\n✅ Name availability checking (simulated)\n✅ Registration with encrypted keystore support\n✅ Owned names listing\n✅ Security-first design\n✅ Support for emoji and international character names"
      }
    ],
    "body": "🌐 NadName Agent v2.0 - .nad Names on Monad\n\nRegister permanent .nad names on Monad blockchain via Nad Name Service with real API integration\n\nTL;DR: Get yourname.nad on Monad. One-time fee, lifetime ownership. Now with real NAD API integration and accurate pricing!\n\nWhat is NNS?\n\nNad Name Service (NNS) is a web3 name service built on Monad blockchain that maps human-readable names like agent.nad to cryptocurrency addresses and metadata.\n\nPermanent ownership — One-time registration fee, no renewals\nNFT-based — Names are tradeable NFTs\nEmoji support — Use 🦞.nad or 你好.nad\nFast & cheap — Built on Monad, the fastest blockchain\nProfile customization — Set avatar, social links, text records\nKey Details\nBlockchain: Monad (Chain ID: 143)\nRPC: https://rpc.monad.xyz\nContract: 0xE18a7550AA35895c87A1069d1B775Fa275Bc93Fb\nWebsite: https://app.nad.domains\nDocs: https://docs.nad.domains\n🔐 Security & Wallet Setup\nOption 1: Environment Variable (Recommended ✅)\nexport PRIVATE_KEY=\"0x...\"\nnode scripts/check-name.js myname\n\n\n✅ Safest: Private key exists only in memory, never saved to disk.\n\nOption 2: Managed Mode (Encrypted)\nnode scripts/register-name.js --managed --name myname\n\n\n✅ Secure: Creates encrypted keystore, password-protected.\n\n⚠️ Critical Security Rules\nNEVER hardcode private keys in scripts\nNEVER commit private keys to git\nNEVER auto-detect wallet paths (security risk)\nONLY use PRIVATE_KEY env var or --managed encrypted keystore\nPrivate key files should be chmod 600\n🚀 Quick Start\n1️⃣ Check Name Availability\n# Check if name is available and get pricing\nnode scripts/check-name.js myname\n\n# Output example:\n# ✅ myname.nad is available!\n# 💰 Price: 649 MON (base price)\n# 🎄 Discount: 50% (Christmas special)\n# 💸 Final price: 324.5 MON\n\n2️⃣ Register Name\n# Using environment variable\nexport PRIVATE_KEY=\"0x...\"\nnode scripts/register-name.js --name myname\n\n# Set as primary name too\nnode scripts/register-name.js --name myname --set-primary\n\n# Using managed mode (encrypted keystore)\nnode scripts/register-name.js --managed --name myname --set-primary\n\n3️⃣ List Your Names\n# List names owned by your wallet\nnode scripts/my-names.js\n\n📦 Scripts Reference\nScript\tPurpose\tNeeds Private Key\ncheck-name.js\tCheck availability & pricing\t❌\nregister-name.js\tRegister .nad name\t✅\nmy-names.js\tList owned names\t❌ (reads from address)\ncheck-name.js\n\nCheck if a .nad name is available and get current pricing:\n\nnode scripts/check-name.js <name>\nnode scripts/check-name.js agent\nnode scripts/check-name.js 🦞\n\nregister-name.js\n\nRegister a new .nad name:\n\n# Basic registration\nnode scripts/register-name.js --name myname\n\n# Register and set as primary\nnode scripts/register-name.js --name myname --set-primary\n\n# Using managed encrypted keystore\nnode scripts/register-name.js --managed --name myname\n\n# Dry run to check costs without sending transaction\nnode scripts/register-name.js --name myname --dry-run\n\n# With referrer for potential discounts\nnode scripts/register-name.js --name myname --referrer 0x...\n\n\nFlags:\n\n--name <name> - Name to register (required)\n--set-primary - Set as primary name after registration\n--managed - Use encrypted keystore (creates if doesn't exist)\n--address <addr> - Custom address to use (defaults to wallet address)\n--dry-run - Show what would be done without sending transaction\n--referrer <addr> - Referrer address for discounts\nmy-names.js\n\nList all .nad names owned by an address:\n\n# Use wallet from PRIVATE_KEY env var\nnode scripts/my-names.js\n\n# Check specific address\nnode scripts/my-names.js --address 0x...\n\n# Use managed keystore\nnode scripts/my-names.js --managed\n\n🔧 Technical Details\nv2.0 Registration Flow\n\nThe new registration process follows CloudLobster's discovered pattern:\n\nStep 1: Get Registration Data\n\nPOST https://api.nad.domains/api/register-request\nBody: {\n  \"name\": \"myname\",\n  \"owner\": \"0x...\",\n  \"setAsPrimary\": true,\n  \"referrer\": null,\n  \"paymentToken\": \"0x0000000000000000000000000000000000000000\"\n}\n\nResponse: {\n  \"registerData\": {...},\n  \"signature\": \"0x...\",\n  \"price\": \"324.5\"\n}\n\n\nStep 2: Contract Call\n\nawait contract.registerWithSignature(registerData, signature, {\n  value: ethers.parseEther(price),\n  gasLimit: estimatedGas * 2n  // 2x safety buffer\n});\n\nContract Interaction\nContract: 0xE18a7550AA35895c87A1069d1B775Fa275Bc93Fb\nMethod: registerWithSignature(registerData, signature) with server co-signature\nGas: ~650,000-970,000 gas for registration (2x buffer applied automatically)\nPricing: Real-time from NAD API\nPayment: MON tokens sent as transaction value\nSupported Names\nLength: 1-63 characters\nCharacters: a-z, 0-9, emojis, international characters\nExamples: agent.nad, 🦞.nad, 你好.nad, salmo.nad\nProfile Features\n\nAfter registration, you can customize:\n\nAvatar image\nSocial media links\nText records (email, website, etc.)\nPrimary name setting\n💡 Examples\nBasic Bot Registration\nexport PRIVATE_KEY=\"0x...\"\nnode scripts/check-name.js mybot\n# ✅ mybot.nad is available!\n# 💰 Price: 324.5 MON\n\nnode scripts/register-name.js --name mybot --set-primary\n# 🎉 Registration successful!\n\nDry Run Testing\n# Test registration without spending MON\nnode scripts/register-name.js --name mybot --dry-run\n# 🏃‍♂️ DRY RUN MODE - No transaction will be sent\n# ✅ Registration data looks valid\n# ⛽ Estimated gas cost: 0.002 MON\n# 💸 Total cost: 324.502 MON\n\nEmoji Names\nnode scripts/check-name.js 🤖\nnode scripts/register-name.js --name 🤖 --dry-run\n\nSecure Managed Setup\n# First time setup\nnode scripts/register-name.js --managed --name myagent --dry-run\n# Enter password when prompted\n\n# Future use\nnode scripts/my-names.js --managed\n# Enter same password\n\n🌐 Links\nNNS Website: https://app.nad.domains\nDocumentation: https://docs.nad.domains\nMonad Explorer: https://explorer.monad.xyz\nGet MON tokens: https://bridge.monad.xyz\n🛡️ Security Audit Checklist\n\nBefore using this skill:\n\n✅ No hardcoded private keys\n✅ No auto-detection of external wallet paths\n✅ Environment variables only or encrypted keystore\n✅ No --no-sandbox browser usage\n✅ No remote code execution\n✅ Proper file permissions (600) for sensitive files\n✅ Clear security warnings in documentation\n\nThis skill follows OpenClaw security best practices and should pass VirusTotal scanning.\n\n📝 Changelog\nv2.0.0 (2026-02-09) - Real API Integration\n🚀 Breaking: Real NAD API integration with registerWithSignature\n🔍 Real-time name availability checking via API endpoints\n💰 Real-time pricing from NAD API\n⛽ Dynamic gas estimation with 2x safety buffer (~1,000,000 gas)\n🏃‍♂️ --dry-run flag for testing without spending tokens\n🔗 --referrer support for potential discounts\n📊 Better error handling and transaction feedback\n🙏 Thanks to CloudLobster for testing and discovering the real flow!\nv2.0.0 Improvements Based on CloudLobster's Feedback:\n❌ Removed hardcoded pricing and fake availability checks\n✅ Real POST /api/register-request → registerWithSignature flow\n✅ Proper gas estimation (646K estimate → 969K actual, now with 2x buffer)\n✅ Server co-signature integration for NNS backend validation\nv1.0.0 (2026-02-09)\n🎉 Initial release\n✅ Name availability checking (simulated)\n✅ Registration with encrypted keystore support\n✅ Owned names listing\n✅ Security-first design\n✅ Support for emoji and international character names"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/dAAAb/nadname-agent",
    "publisherUrl": "https://clawhub.ai/dAAAb/nadname-agent",
    "owner": "dAAAb",
    "version": "2.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/nadname-agent",
    "downloadUrl": "https://openagent3.xyz/downloads/nadname-agent",
    "agentUrl": "https://openagent3.xyz/skills/nadname-agent/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nadname-agent/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nadname-agent/agent.md"
  }
}