NadName Agent

WarnAudited by ClawScan on May 10, 2026.

Overview

This .nad registration skill matches its stated blockchain purpose, but it handles wallet-level secrets and includes misleading/mock behavior, so it needs careful review before using real funds.

Do not use a main wallet. If you install this, use a fresh low-balance wallet, pin dependencies, run dry-run first, verify the contract/API independently, and avoid managed-mode wallet creation in an agent session because the script can display or store recovery material.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If used with a main wallet or captured in an agent transcript, the private key or mnemonic could expose funds and allow irreversible blockchain actions.

Why it was flagged

The registration script can use a wallet private key, read an unencrypted private-key file in managed mode, and print a mnemonic recovery phrase. This is high-impact signing authority over a blockchain wallet and is more sensitive than the metadata declares.

Skill content
const PLAIN_KEY_FILE = path.join(CONFIG_DIR, 'private-key'); ... if (fs.existsSync(PLAIN_KEY_FILE)) { console.warn('โš ๏ธ  Using unencrypted private key ...'); return fs.readFileSync(PLAIN_KEY_FILE, 'utf8').trim(); } ... console.log(`๐Ÿ”ค ${wallet.mnemonic.phrase}`);
Recommendation

Use only a new, low-balance wallet; avoid creating or displaying mnemonics through an agent session; remove the plaintext key fallback; and explicitly declare PRIVATE_KEY/keystore handling in metadata.

What this means

A user could trust an inaccurate availability result and proceed toward a paid registration or other wallet action based on mock data.

Why it was flagged

The fallback checker labels simulated results as on-chain availability, while the documentation advertises real API integration and accurate pricing.

Skill content
// In a full implementation, you'd call the NNS contract here ... // For now, we'll do a basic simulation ... return { available: true, owner: null, source: 'on-chain' };
Recommendation

Fail closed when API/contract checks are unavailable, clearly label simulation mode, and implement real contract reads before presenting availability as on-chain.

What this means

Running the registration command can spend tokens and permanently affect on-chain ownership/name settings.

Why it was flagged

The advertised workflow sends a blockchain transaction with MON value and a gas buffer. This is purpose-aligned for registering a name, but it is financially impactful and generally irreversible.

Skill content
await contract.registerWithSignature(registerData, signature, { value: ethers.parseEther(price), gasLimit: estimatedGas * 2n });
Recommendation

Run dry-run first, verify price and gas independently, and require explicit user approval immediately before any transaction.

What this means

The provider can learn the name request and wallet address before or during registration.

Why it was flagged

The registration flow sends the requested name and wallet address to the NAD API. This is expected for the stated integration and does not show private-key transmission.

Skill content
POST https://api.nad.domains/api/register-request Body: { "name": "myname", "owner": "0x...", "setAsPrimary": true, "referrer": null, "paymentToken": "0x0000000000000000000000000000000000000000" }
Recommendation

Use the API only if you trust the Nad Domains service and are comfortable linking the requested name with the wallet address.

What this means

A future npm install could resolve to a different ethers version than the author tested.

Why it was flagged

The skill depends on an npm package with a semver range rather than a pinned lockfile in the provided manifest. This is common, but dependency versions can change over time.

Skill content
"dependencies": { "ethers": "^6.0.0" }
Recommendation

Use a lockfile or pin exact dependency versions before handling wallet keys or sending transactions.