> Register permanent .nad names on Monad blockchain via Nad Name Service with real API integration
TL;DR: Get yourname.nad on Monad. One-time fee, lifetime ownership. Now with real NAD API integration and accurate pricing!
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.
export PRIVATE_KEY="0x..."
node scripts/check-name.js myname
> ✅ Safest: Private key exists only in memory, never saved to disk.
node scripts/register-name.js --managed --name myname
> ✅ Secure: Creates encrypted keystore, password-protected.
600# Check if name is available and get pricing
node scripts/check-name.js myname
# Output example:
# ✅ myname.nad is available!
# 💰 Price: 649 MON (base price)
# 🎄 Discount: 50% (Christmas special)
# 💸 Final price: 324.5 MON
# Using environment variable
export PRIVATE_KEY="0x..."
node scripts/register-name.js --name myname
# Set as primary name too
node scripts/register-name.js --name myname --set-primary
# Using managed mode (encrypted keystore)
node scripts/register-name.js --managed --name myname --set-primary
# List names owned by your wallet
node scripts/my-names.js
| Script | Purpose | Needs Private Key |
|---|---|---|
| -------- | --------- | ------------------- |
check-name.js | Check availability & pricing | ❌ |
register-name.js | Register .nad name | ✅ |
my-names.js | List owned names | ❌ (reads from address) |
Check if a .nad name is available and get current pricing:
node scripts/check-name.js <name>
node scripts/check-name.js agent
node scripts/check-name.js 🦞
Register a new .nad name:
# Basic registration
node scripts/register-name.js --name myname
# Register and set as primary
node scripts/register-name.js --name myname --set-primary
# Using managed encrypted keystore
node scripts/register-name.js --managed --name myname
# Dry run to check costs without sending transaction
node scripts/register-name.js --name myname --dry-run
# With referrer for potential discounts
node scripts/register-name.js --name myname --referrer 0x...
Flags:
--name - Name to register (required)--set-primary - Set as primary name after registration--managed - Use encrypted keystore (creates if doesn't exist)--address - Custom address to use (defaults to wallet address)--dry-run - Show what would be done without sending transaction--referrer - Referrer address for discountsList all .nad names owned by an address:
# Use wallet from PRIVATE_KEY env var
node scripts/my-names.js
# Check specific address
node scripts/my-names.js --address 0x...
# Use managed keystore
node scripts/my-names.js --managed
The new registration process follows CloudLobster's discovered pattern:
Step 1: Get Registration Data
POST https://api.nad.domains/api/register-request
Body: {
"name": "myname",
"owner": "0x...",
"setAsPrimary": true,
"referrer": null,
"paymentToken": "0x0000000000000000000000000000000000000000"
}
Response: {
"registerData": {...},
"signature": "0x...",
"price": "324.5"
}
Step 2: Contract Call
await contract.registerWithSignature(registerData, signature, {
value: ethers.parseEther(price),
gasLimit: estimatedGas * 2n // 2x safety buffer
});
registerWithSignature(registerData, signature) with server co-signatureagent.nad, 🦞.nad, 你好.nad, salmo.nadAfter registration, you can customize:
export PRIVATE_KEY="0x..."
node scripts/check-name.js mybot
# ✅ mybot.nad is available!
# 💰 Price: 324.5 MON
node scripts/register-name.js --name mybot --set-primary
# 🎉 Registration successful!
# Test registration without spending MON
node scripts/register-name.js --name mybot --dry-run
# 🏃♂️ DRY RUN MODE - No transaction will be sent
# ✅ Registration data looks valid
# ⛽ Estimated gas cost: 0.002 MON
# 💸 Total cost: 324.502 MON
node scripts/check-name.js 🤖
node scripts/register-name.js --name 🤖 --dry-run
# First time setup
node scripts/register-name.js --managed --name myagent --dry-run
# Enter password when prompted
# Future use
node scripts/my-names.js --managed
# Enter same password
Before using this skill:
✅ No hardcoded private keys
✅ No auto-detection of external wallet paths
✅ Environment variables only or encrypted keystore
✅ No --no-sandbox browser usage
✅ No remote code execution
✅ Proper file permissions (600) for sensitive files
✅ Clear security warnings in documentation
This skill follows OpenClaw security best practices and should pass VirusTotal scanning.
registerWithSignature--dry-run flag for testing without spending tokens--referrer support for potential discountsPOST /api/register-request → registerWithSignature flow共 2 个版本