๐ NadName Agent v2.0 - .nad Names on Monad
name: NadName Agent
by daaab ยท published 2026-03-22
$ claw add gh:daaab/daaab-nadname-agent---
name: NadName Agent
description: "๐ Register .nad names on Monad blockchain via Nad Name Service (NNS). Real API integration with registerWithSignature, dynamic gas estimation, permanent ownership."
---
# ๐ NadName Agent v2.0 - .nad Names on Monad
> 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!
What is NNS?
**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.
Key Details
---
๐ Security & Wallet Setup
Option 1: Environment Variable (Recommended โ )
export PRIVATE_KEY="0x..."
node scripts/check-name.js myname> โ **Safest**: Private key exists only in memory, never saved to disk.
Option 2: Managed Mode (Encrypted)
node scripts/register-name.js --managed --name myname> โ **Secure**: Creates encrypted keystore, password-protected.
โ ๏ธ Critical Security Rules
1. **NEVER** hardcode private keys in scripts
2. **NEVER** commit private keys to git
3. **NEVER** auto-detect wallet paths (security risk)
4. **ONLY** use PRIVATE_KEY env var or --managed encrypted keystore
5. Private key files should be chmod `600`
---
๐ Quick Start
1๏ธโฃ Check Name Availability
# 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 MON2๏ธโฃ Register Name
# 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-primary3๏ธโฃ List Your Names
# List names owned by your wallet
node scripts/my-names.js---
๐ฆ Scripts Reference
| 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-name.js
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-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:**
my-names.js
List 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---
๐ง Technical Details
v2.0 Registration Flow
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
});Contract Interaction
Supported Names
Profile Features
After registration, you can customize:
---
๐ก Examples
Basic Bot Registration
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!Dry Run Testing
# 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 MONEmoji Names
node scripts/check-name.js ๐ค
node scripts/register-name.js --name ๐ค --dry-runSecure Managed Setup
# 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---
๐ Links
---
๐ก๏ธ Security Audit Checklist
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.
---
๐ Changelog
v2.0.0 (2026-02-09) - Real API Integration
#### v2.0.0 Improvements Based on CloudLobster's Feedback:
v1.0.0 (2026-02-09)
More tools from the same signal band
Order food/drinks (็น้ค) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...