Install
openclaw skills install tokenbrokerClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
AI Agent Skill for GitHub project analysis and nad.fun token launch. Analyzes repos, generates token identity/promo, and launches on nad.fun.
openclaw skills install tokenbroker.env file.env file on your local machineGITHUB_TOKEN: Used only for GitHub API calls to read public repository dataPRIVATE_KEY: Used only for EVM transaction signing (never exposed in plain text)BUILDER_ID: Local identifier for A2A protocolNAD_FUN_API_KEY: Used only for nad.fun token creation APIThe AI agent skill for memecoin launches on nad.fun. Analyze GitHub projects, generate token metadata, and launch directly on nad.fun bonding curves.
TokenBroker is a complete memecoin launch solution for AI agents:
generators/
├── identity.ts # Token name, ticker, description generation
├── reasoning.ts # Investment thesis, narrative creation
├── promo.ts # X threads, Telegram, Discord content
├── nadfun.ts # Nad.fun API: upload image/metadata, mine salt
└── index.ts # Pipeline orchestrator (generateAll)
import { generateAll, prepareLaunch } from './generators/index.js';
// 1. Analyze repo and generate all launch assets
const assets = await generateAll({
repoAnalysis: await analyzeGitHubRepo('https://github.com/user/project')
});
console.log('Token name:', assets.identity.name);
console.log('Ticker:', assets.identity.ticker);
console.log('X Thread:', assets.promo.xThread.tweets);
// 2. Prepare launch on nad.fun (API calls only)
const prepared = await prepareLaunch(assets.identity, 'mainnet');
// -> Returns: { imageUri, metadataUri, salt, saltAddress }
// 3. Deploy on-chain (requires ethers + private key)
// Use deploy.ts module with wallet for on-chain execution
Analyzes repo and generates token identity:
{
name: "SWAPPRO",
ticker: "SWAP",
tagline: "The next generation DeFi protocol",
description: "Full token description...",
nameReasoning: "How the name was derived"
}
Creates investment thesis and narrative:
{
investmentThesis: "Why this token should exist...",
problemStatement: "The problem being solved",
solution: "The proposed solution",
marketOpportunity: "Market size and opportunity",
competitiveAdvantage: "Why this wins",
tokenUtilityRationale: "Token value proposition",
vision: "Long-term vision"
}
Generates marketing content:
{
xThread: { title, tweets: [...], hashtags, mentions },
telegramPost: { title, content, hasButton, buttonText, buttonUrl },
discordAnnouncement: { title, content, hasEmbed, embedColor, embedFields },
tagline: "Marketing tagline",
elevatorPitch: "One-liner pitch"
}
Prepares token for nad.fun launch (API calls):
{
imageUri: "ipfs://...",
metadataUri: "ipfs://...",
salt: "0x...",
saltAddress: "0x..."
}
TokenBroker integrates directly with nad.fun API:
| Step | API Endpoint | Function |
|---|---|---|
| 1 | POST /agent/token/image | uploadImage() |
| 2 | POST /agent/token/metadata | uploadMetadata() |
| 3 | POST /agent/salt | mineSalt() |
| 4 | BondingCurveRouter.create() | On-chain deployment |
| Network | API | RPC |
|---|---|---|
| Testnet | https://dev-api.nad.fun | https://testnet-rpc.monad.xyz |
| Mainnet | https://api.nadapp.net | https://rpc.monad.xyz |
npm install
# Network (testnet | mainnet)
NETWORK=mainnet
# GitHub (optional - for repo analysis)
GITHUB_TOKEN=ghp_...
TokenBroker prepares all launch data. For actual on-chain deployment:
npm install ethers
Then use with a wallet:
import { prepareLaunch } from './generators/nadfun.js';
import { ethers } from 'ethers';
const prepared = await prepareLaunch(identity, 'mainnet');
// Deploy with wallet
const wallet = new ethers.Wallet(privateKey, provider);
const router = new ethers.Contract(BONDING_CURVE_ROUTER, abi, wallet);
await router.create(tokenParams, fee, toll, tradingAmt, { value: deployFee });
Built for the agentic future. 🦞