Nadfun Skill

# NadFun Integration Guide

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Nadfun Skill" with this command: npx skills add zaki9501/nadfun-skill

NadFun Integration Guide

Monad blockchain token launchpad with bonding curves. Trade tokens, launch your own, monitor events—all with pure viem.

Skills

ModulePurposeURL
skill.mdArchitecture, constants, setupnad.fun/skill.md
ABI.mdSmart contract ABIsnad.fun/abi.md
QUOTE.mdPrice quotes, curve statenad.fun/quote.md
TRADING.mdBuy, sell, permit signaturesnad.fun/trading.md
TOKEN.mdBalances, metadata, transfersnad.fun/token.md
CREATE.mdToken creation, image uploadnad.fun/create.md
INDEXER.mdHistorical event queryingnad.fun/indexer.md
AGENT-API.mdREST API, API key managementnad.fun/agent-api.md
WALLET.mdWallet generationnad.fun/wallet.md
AUSD.mdLiFi swap (MON → aUSD) + Upshift vaultnad.fun/ausd.md

Network Constants

const NETWORK = "testnet" // 'testnet' | 'mainnet'

const CONFIG = {
  testnet: {
    chainId: 10143,
    rpcUrl: "https://monad-testnet.drpc.org",
    apiUrl: "https://dev-api.nad.fun",
    DEX_ROUTER: "0x5D4a4f430cA3B1b2dB86B9cFE48a5316800F5fb2",
    BONDING_CURVE_ROUTER: "0x865054F0F6A288adaAc30261731361EA7E908003",
    LENS: "0xB056d79CA5257589692699a46623F901a3BB76f1",
    CURVE: "0x1228b0dc9481C11D3071E7A924B794CfB038994e",
    WMON: "0x5a4E0bFDeF88C9032CB4d24338C5EB3d3870BfDd",
    V3_FACTORY: "0xd0a37cf728CE2902eB8d4F6f2afc76854048253b",
    CREATOR_TREASURY: "0x24dFf9B68fA36f8400302e2babC3e049eA19459E",
  },
  mainnet: {
    chainId: 143,
    rpcUrl: "https://monad-mainnet.drpc.org",
    apiUrl: "https://api.nadapp.net",
    DEX_ROUTER: "0x0B79d71AE99528D1dB24A4148b5f4F865cc2b137",
    BONDING_CURVE_ROUTER: "0x6F6B8F1a20703309951a5127c45B49b1CD981A22",
    LENS: "0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea",
    CURVE: "0xA7283d07812a02AFB7C09B60f8896bCEA3F90aCE",
    WMON: "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A",
    V3_FACTORY: "0x6B5F564339DbAD6b780249827f2198a841FEB7F3",
    CREATOR_TREASURY: "0x42e75B4B96d7000E7Da1e0c729Cec8d2049B9731",
  },
}[NETWORK]

Basic Setup

import { createPublicClient, createWalletClient, http } from "viem"
import { privateKeyToAccount } from "viem/accounts"

const chain = {
  id: CONFIG.chainId,
  name: "Monad",
  nativeCurrency: { name: "MON", symbol: "MON", decimals: 18 },
  rpcUrls: { default: { http: [CONFIG.rpcUrl] } },
}

const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`)

const publicClient = createPublicClient({
  chain,
  transport: http(CONFIG.rpcUrl),
})

const walletClient = createWalletClient({
  account,
  chain,
  transport: http(CONFIG.rpcUrl),
})

Core Concepts

Bonding Curve

Tokens start on a bonding curve. Price increases as more buy. Check state with getCurveState(token).

Graduation

When target reserves reached: curve → Uniswap V3 DEX. Check isGraduated(token) or getProgress(token) (0-10000 = 0-100%).

Permit Signatures (EIP-2612)

Sign approval off-chain for gasless approve: generatePermitSignature() → use in sellPermit().

Action IDs

Always use actionId: 1 for token creation.

Authentication (Login Flow)

Login is NOT required for any functionality. All trading, token creation, and queries work without login.

Login is ONLY needed to manage API keys (create/list/delete). See AGENT-API.md for:

  • Rate limits (10 req/min without key, 100 req/min with key)
  • API key CRUD operations

Cookie name: nadfun-v3-api

// 1. Request nonce
const { nonce } = await fetch(`${CONFIG.apiUrl}/auth/nonce`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ address: account.address }),
}).then((r) => r.json())

// 2. Sign nonce
const signature = await walletClient.signMessage({ message: nonce })

// 3. Create session
const sessionRes = await fetch(`${CONFIG.apiUrl}/auth/session`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ signature, nonce, chain_id: CONFIG.chainId }),
})
// Cookie: nadfun-v3-api=<token>
const cookies = sessionRes.headers.get("set-cookie")

// 4. Use session for API key management
await fetch(`${CONFIG.apiUrl}/api-key`, {
  headers: { Cookie: cookies },
})

Common Pitfalls

  • Gas estimation: Always estimateContractGas() before sending. Never hardcode gas limits.
  • Deadline: Must be future timestamp. Use BigInt(Math.floor(Date.now() / 1000) + 300) (5 min).
  • Slippage: Calculate amountOutMin with buffer. (amountOut * 99n) / 100n = 1% slippage.
  • Permit nonce: Fetch immediately before signing. Stale nonce = tx revert.

Common ABI Errors

ErrorMeaning
InsufficientAmountOutput < amountOutMin
DeadlineExpiredDeadline passed
AlreadyGraduatedToken on DEX
BondingCurveLockedCurve locked during graduation
InvalidProofBad merkle proof (claims)

Installation

npm install viem

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Yield Farm Payment

Free usage! Transform your outgoing payments into a yield-generating asset. Auto recover of all paid amounts through yield farming on Aave V3. This skill aut...

Registry SourceRecently Updated
Web3

ClawPay-Hedera

Pay for MCP tool calls on Hedera using x402 micropayments, discover AI agents via on-chain registry, check reputation before transacting, and submit ratings...

Registry SourceRecently Updated
1320Profile unavailable
Web3

Governance Inheritance

Hierarchical policy inheritance system for OpenClaw agents. Enables policies to be defined at organization, team, project, and session levels with automatic...

Registry SourceRecently Updated
1530Profile unavailable
Web3

oudated-noa

Citizen skill for the Nation of Agents — authenticate with your Ethereum wallet, communicate via Matrix, trade and collaborate with other AI agents.

Registry SourceRecently Updated
1250Profile unavailable