โ† All skills
Tencent SkillHub ยท Content Creation

NadFun Token Creation

Guide users through uploading an image and metadata, mining a vanity salt, and deploying a token on-chain via BondingCurveRouter in a 4-step flow on Nad.fun.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Guide users through uploading an image and metadata, mining a vanity salt, and deploying a token on-chain via BondingCurveRouter in a 4-step flow on Nad.fun.

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

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. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
1.0.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 18 sections Open source page

Prerequisite: monad-development Skill

Before proceeding, check if the monad-development skill is installed. If it is not available, install it using ClawHub: clawhub search "monad" Find and install the monad-development skill from the results. This skill is required for wallet management and on-chain actions in Step 3 and Step 4. Help the user create a token on Nad.fun by following the 4-step sequential process below. Each step depends on the output of the previous step.

API Base URL

Production: https://api.nadapp.net

Contract Addresses

BondingCurveRouter = "0x6F6B8F1a20703309951a5127c45B49b1CD981A22" Lens = "0x7e78A8DE94f21804F7a17F4E8BF9EC2c872187ea"

Step 1: Upload Image

POST /agent/token/image Content-Type: image/png, image/jpeg, image/webp, or image/svg+xml Body: Raw binary image data (max 5MB) Returns: image_uri (CDN URL) and is_nsfw (boolean) const imageResponse = await fetch("https://api.nadapp.net/agent/token/image", { method: "POST", headers: { "Content-Type": imageFile.type }, body: imageFile, }); const { image_uri, is_nsfw } = await imageResponse.json();

Error Codes

StatusDescription400Invalid image format or missing image413Image exceeds 5MB limit500NSFW check failed or upload failed

Step 2: Upload Metadata

POST /agent/token/metadata Content-Type: application/json Requires: image_uri from Step 1

Request Body

Required fields: FieldTypeConstraintsimage_uristringMust be from https://storage.nadapp.net/namestring1-32 characterssymbolstring1-10 characters, alphanumeric only (/^[a-zA-Z0-9]+$/) Optional fields: FieldTypeConstraintsdescriptionstring or nullMax 500 characterswebsitestring or nullMust start with https://twitterstring or nullMust contain x.com and start with https://telegramstring or nullMust contain t.me and start with https:// const metadataResponse = await fetch("https://api.nadapp.net/agent/token/metadata", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ image_uri, name: "My Token", symbol: "MTK", description: "An awesome token for the Nad.fun", website: "https://mytoken.com", twitter: "https://x.com/mytoken", telegram: "https://t.me/mytoken", }), }); const { metadata_uri } = await metadataResponse.json();

Error Codes

StatusDescription400NSFW status unknown, invalid data, or validation failed500Upload to storage or database failed

Step 3: Mine Salt

POST /agent/salt Content-Type: application/json Requires: metadata_uri from Step 2 Produces a vanity token address ending in 7777

Request Body

FieldTypeDescriptioncreatorstringCreator's wallet address (EVM format)namestringToken name (must match metadata)symbolstringToken symbol (must match metadata)metadata_uristringMetadata URI from Step 2 const saltResponse = await fetch("https://api.nadapp.net/agent/salt", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ creator: walletAddress, name: "My Token", symbol: "MTK", metadata_uri: metadataUri, }), }); const { salt, address } = await saltResponse.json(); Returns: salt (bytes32 hex) and address (token address with 7777 suffix)

Error Codes

StatusDescription400Invalid parameters408Timeout - max iterations reached500Internal server error

Step 4: Create Token On-Chain

Call BondingCurveRouter.create() with the data from previous steps.

TokenCreationParams

struct TokenCreationParams { string name; string symbol; string tokenURI; // metadata_uri from Step 2 uint256 amountOut; // 0 for no initial buy, or use Lens.getInitialBuyAmountOut(amountIn) bytes32 salt; // salt from Step 3 uint8 actionId; // always 1 (graduate to Capricorn V3) } function create(TokenCreationParams calldata params) external payable returns (address token, address pool);

Option A: Create Without Initial Buy

Send only the deploy fee as msg.value. const curve = new ethers.Contract(BONDING_CURVE_ADDRESS, BONDING_CURVE_ABI, signer); const [deployFee,,] = await curve.feeConfig(); const params = { name, symbol, tokenURI: metadata_uri, amountOut: 0, salt, actionId: 1, }; const tx = await router.create(params, { value: deployFee }); await tx.wait();

Option B: Create With Initial Buy

Send deployFee + amountIn as msg.value. Use Lens.getInitialBuyAmountOut(amountIn) for amountOut. const lens = new ethers.Contract(LENS_ADDRESS, LENS_ABI, signer); const expectedAmountOut = await lens.getInitialBuyAmountOut(amountIn); const [deployFee,,] = await curve.feeConfig(); const params = { name, symbol, tokenURI: metadata_uri, amountOut: expectedAmountOut, salt, actionId: 1, }; const tx = await router.create(params, { value: deployFee + amountIn }); await tx.wait();

Wallet for On-Chain Actions

For Step 3 (salt mining) and Step 4 (on-chain deployment), use the wallet from the monad-development skill. That skill handles all wallet configuration, private key management, and RPC setup. Use the signer and wallet address it provides when calling the salt API (creator field) and when sending the BondingCurveRouter.create() transaction.

Important Rules

Sequential process - Each step depends on the previous step's output. NSFW validation - Images are auto-checked in Step 1; the flag carries into metadata. URL validation - All URLs must use HTTPS. Twitter must use x.com, Telegram must use t.me. Image domain restriction - Only https://storage.nadapp.net/ image URIs are accepted in metadata. Salt mining - May timeout if the vanity address pattern can't be found within iteration limits. actionId - Always use 1 (graduate to Capricorn V3).

When Generating Code

Use ethers v6 syntax by default unless the user specifies otherwise. Always handle errors for each API call before proceeding to the next step. The salt from Step 3 and metadata_uri from Step 2 are both needed for Step 4. For initial buy, always query Lens.getInitialBuyAmountOut() to get the correct amountOut.

Category context

Writing, remixing, publishing, visual generation, and marketing content production.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
1 Docs
  • SKILL.md Primary doc