{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tokenbroker",
    "name": "Tokenbroker",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/starrftw/tokenbroker",
    "canonicalUrl": "https://clawhub.ai/starrftw/tokenbroker",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tokenbroker",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tokenbroker",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "GITHUB.md",
      "LAUNCH.md",
      "METADATA.md",
      "PROJECT-SCAN.md",
      "PROMO.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tokenbroker"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/tokenbroker",
    "agentPageUrl": "https://openagent3.xyz/skills/tokenbroker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tokenbroker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tokenbroker/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Local Storage Only",
        "body": "All credentials (GitHub token, private keys, API keys) are stored locally in a .env file\nNo credentials are transmitted to external servers beyond their intended endpoints (GitHub API, nad.fun API, Monad RPC)\nThe skill operates entirely within your local environment"
      },
      {
        "title": ".env File Generation",
        "body": "The Install Wizard generates a .env file on your local machine\nThis file is never committed to version control (gitignored)\nYou can review and edit it at any time"
      },
      {
        "title": "Credential Scope",
        "body": "GITHUB_TOKEN: Used only for GitHub API calls to read public repository data\nPRIVATE_KEY: Used only for EVM transaction signing (never exposed in plain text)\nBUILDER_ID: Local identifier for A2A protocol\nNAD_FUN_API_KEY: Used only for nad.fun token creation API"
      },
      {
        "title": "Testnet Mode",
        "body": "Default operation is on testnet for safety\nMainnet requires explicit configuration\nAlways review transactions before signing\n\nThe AI agent skill for memecoin launches on nad.fun. Analyze GitHub projects, generate token metadata, and launch directly on nad.fun bonding curves."
      },
      {
        "title": "What is TokenBroker?",
        "body": "TokenBroker is a complete memecoin launch solution for AI agents:\n\nAnalyzes GitHub projects to identify meme-worthy projects\nGenerates token names, tickers, descriptions, and marketing content\nLaunches tokens on nad.fun (image, metadata, salt, deploy)\nPromotes launches with X/Telegram/Discord content"
      },
      {
        "title": "TokenBroker Handles",
        "body": "GitHub repository analysis and scoring\nToken identity generation (name, ticker, description)\nMeme-style image generation\nNad.fun API integration (upload, salt mining)\nMarketing content creation (X threads, Telegram, Discord)\nFull launch orchestration"
      },
      {
        "title": "Not Included",
        "body": "Wallet private key management (handled by host)\nOn-chain transactions beyond nad.fun bonding curves"
      },
      {
        "title": "Architecture (tokenbroker/src/generators/)",
        "body": "generators/\n├── identity.ts     # Token name, ticker, description generation\n├── reasoning.ts    # Investment thesis, narrative creation\n├── promo.ts        # X threads, Telegram, Discord content\n├── nadfun.ts       # Nad.fun API: upload image/metadata, mine salt\n└── index.ts        # Pipeline orchestrator (generateAll)"
      },
      {
        "title": "Quick Start for Agents",
        "body": "import { generateAll, prepareLaunch } from './generators/index.js';\n\n// 1. Analyze repo and generate all launch assets\nconst assets = await generateAll({\n  repoAnalysis: await analyzeGitHubRepo('https://github.com/user/project')\n});\n\nconsole.log('Token name:', assets.identity.name);\nconsole.log('Ticker:', assets.identity.ticker);\nconsole.log('X Thread:', assets.promo.xThread.tweets);\n\n// 2. Prepare launch on nad.fun (API calls only)\nconst prepared = await prepareLaunch(assets.identity, 'mainnet');\n// -> Returns: { imageUri, metadataUri, salt, saltAddress }\n\n// 3. Deploy on-chain (requires ethers + private key)\n// Use deploy.ts module with wallet for on-chain execution"
      },
      {
        "title": "generateIdentity(input)",
        "body": "Analyzes repo and generates token identity:\n\n{\n  name: \"SWAPPRO\",\n  ticker: \"SWAP\", \n  tagline: \"The next generation DeFi protocol\",\n  description: \"Full token description...\",\n  nameReasoning: \"How the name was derived\"\n}"
      },
      {
        "title": "generateReasoning(input)",
        "body": "Creates investment thesis and narrative:\n\n{\n  investmentThesis: \"Why this token should exist...\",\n  problemStatement: \"The problem being solved\",\n  solution: \"The proposed solution\",\n  marketOpportunity: \"Market size and opportunity\",\n  competitiveAdvantage: \"Why this wins\",\n  tokenUtilityRationale: \"Token value proposition\",\n  vision: \"Long-term vision\"\n}"
      },
      {
        "title": "generatePromo(input)",
        "body": "Generates marketing content:\n\n{\n  xThread: { title, tweets: [...], hashtags, mentions },\n  telegramPost: { title, content, hasButton, buttonText, buttonUrl },\n  discordAnnouncement: { title, content, hasEmbed, embedColor, embedFields },\n  tagline: \"Marketing tagline\",\n  elevatorPitch: \"One-liner pitch\"\n}"
      },
      {
        "title": "prepareLaunch(identity, network)",
        "body": "Prepares token for nad.fun launch (API calls):\n\n{\n  imageUri: \"ipfs://...\",\n  metadataUri: \"ipfs://...\", \n  salt: \"0x...\",\n  saltAddress: \"0x...\"\n}"
      },
      {
        "title": "Nad.fun Integration",
        "body": "TokenBroker integrates directly with nad.fun API:\n\nStepAPI EndpointFunction1POST /agent/token/imageuploadImage()2POST /agent/token/metadatauploadMetadata()3POST /agent/saltmineSalt()4BondingCurveRouter.create()On-chain deployment"
      },
      {
        "title": "Network Configuration",
        "body": "NetworkAPIRPCTestnethttps://dev-api.nad.funhttps://testnet-rpc.monad.xyzMainnethttps://api.nadapp.nethttps://rpc.monad.xyz"
      },
      {
        "title": "Install",
        "body": "npm install"
      },
      {
        "title": "Configuration",
        "body": "# Network (testnet | mainnet)\nNETWORK=mainnet\n\n# GitHub (optional - for repo analysis)\nGITHUB_TOKEN=ghp_..."
      },
      {
        "title": "For On-Chain Deployment",
        "body": "TokenBroker prepares all launch data. For actual on-chain deployment:\n\nnpm install ethers\n\nThen use with a wallet:\n\nimport { prepareLaunch } from './generators/nadfun.js';\nimport { ethers } from 'ethers';\n\nconst prepared = await prepareLaunch(identity, 'mainnet');\n\n// Deploy with wallet\nconst wallet = new ethers.Wallet(privateKey, provider);\nconst router = new ethers.Contract(BONDING_CURVE_ROUTER, abi, wallet);\nawait router.create(tokenParams, fee, toll, tradingAmt, { value: deployFee });\n\nBuilt for the agentic future. 🦞"
      }
    ],
    "body": "SKILL.md - TokenBroker Skillset\nSecurity & Data Privacy\nLocal Storage Only\nAll credentials (GitHub token, private keys, API keys) are stored locally in a .env file\nNo credentials are transmitted to external servers beyond their intended endpoints (GitHub API, nad.fun API, Monad RPC)\nThe skill operates entirely within your local environment\n.env File Generation\nThe Install Wizard generates a .env file on your local machine\nThis file is never committed to version control (gitignored)\nYou can review and edit it at any time\nCredential Scope\nGITHUB_TOKEN: Used only for GitHub API calls to read public repository data\nPRIVATE_KEY: Used only for EVM transaction signing (never exposed in plain text)\nBUILDER_ID: Local identifier for A2A protocol\nNAD_FUN_API_KEY: Used only for nad.fun token creation API\nTestnet Mode\nDefault operation is on testnet for safety\nMainnet requires explicit configuration\nAlways review transactions before signing\n\nThe AI agent skill for memecoin launches on nad.fun. Analyze GitHub projects, generate token metadata, and launch directly on nad.fun bonding curves.\n\nWhat is TokenBroker?\n\nTokenBroker is a complete memecoin launch solution for AI agents:\n\nAnalyzes GitHub projects to identify meme-worthy projects\nGenerates token names, tickers, descriptions, and marketing content\nLaunches tokens on nad.fun (image, metadata, salt, deploy)\nPromotes launches with X/Telegram/Discord content\nWhen to Use This Skill\nTokenBroker Handles\nGitHub repository analysis and scoring\nToken identity generation (name, ticker, description)\nMeme-style image generation\nNad.fun API integration (upload, salt mining)\nMarketing content creation (X threads, Telegram, Discord)\nFull launch orchestration\nNot Included\nWallet private key management (handled by host)\nOn-chain transactions beyond nad.fun bonding curves\nArchitecture (tokenbroker/src/generators/)\ngenerators/\n├── identity.ts     # Token name, ticker, description generation\n├── reasoning.ts    # Investment thesis, narrative creation\n├── promo.ts        # X threads, Telegram, Discord content\n├── nadfun.ts       # Nad.fun API: upload image/metadata, mine salt\n└── index.ts        # Pipeline orchestrator (generateAll)\n\nQuick Start for Agents\nimport { generateAll, prepareLaunch } from './generators/index.js';\n\n// 1. Analyze repo and generate all launch assets\nconst assets = await generateAll({\n  repoAnalysis: await analyzeGitHubRepo('https://github.com/user/project')\n});\n\nconsole.log('Token name:', assets.identity.name);\nconsole.log('Ticker:', assets.identity.ticker);\nconsole.log('X Thread:', assets.promo.xThread.tweets);\n\n// 2. Prepare launch on nad.fun (API calls only)\nconst prepared = await prepareLaunch(assets.identity, 'mainnet');\n// -> Returns: { imageUri, metadataUri, salt, saltAddress }\n\n// 3. Deploy on-chain (requires ethers + private key)\n// Use deploy.ts module with wallet for on-chain execution\n\nGenerator Functions\ngenerateIdentity(input)\n\nAnalyzes repo and generates token identity:\n\n{\n  name: \"SWAPPRO\",\n  ticker: \"SWAP\", \n  tagline: \"The next generation DeFi protocol\",\n  description: \"Full token description...\",\n  nameReasoning: \"How the name was derived\"\n}\n\ngenerateReasoning(input)\n\nCreates investment thesis and narrative:\n\n{\n  investmentThesis: \"Why this token should exist...\",\n  problemStatement: \"The problem being solved\",\n  solution: \"The proposed solution\",\n  marketOpportunity: \"Market size and opportunity\",\n  competitiveAdvantage: \"Why this wins\",\n  tokenUtilityRationale: \"Token value proposition\",\n  vision: \"Long-term vision\"\n}\n\ngeneratePromo(input)\n\nGenerates marketing content:\n\n{\n  xThread: { title, tweets: [...], hashtags, mentions },\n  telegramPost: { title, content, hasButton, buttonText, buttonUrl },\n  discordAnnouncement: { title, content, hasEmbed, embedColor, embedFields },\n  tagline: \"Marketing tagline\",\n  elevatorPitch: \"One-liner pitch\"\n}\n\nprepareLaunch(identity, network)\n\nPrepares token for nad.fun launch (API calls):\n\n{\n  imageUri: \"ipfs://...\",\n  metadataUri: \"ipfs://...\", \n  salt: \"0x...\",\n  saltAddress: \"0x...\"\n}\n\nNad.fun Integration\n\nTokenBroker integrates directly with nad.fun API:\n\nStep\tAPI Endpoint\tFunction\n1\tPOST /agent/token/image\tuploadImage()\n2\tPOST /agent/token/metadata\tuploadMetadata()\n3\tPOST /agent/salt\tmineSalt()\n4\tBondingCurveRouter.create()\tOn-chain deployment\nNetwork Configuration\nNetwork\tAPI\tRPC\nTestnet\thttps://dev-api.nad.fun\thttps://testnet-rpc.monad.xyz\nMainnet\thttps://api.nadapp.net\thttps://rpc.monad.xyz\nInstall\nnpm install\n\nConfiguration\n# Network (testnet | mainnet)\nNETWORK=mainnet\n\n# GitHub (optional - for repo analysis)\nGITHUB_TOKEN=ghp_...\n\nFor On-Chain Deployment\n\nTokenBroker prepares all launch data. For actual on-chain deployment:\n\nnpm install ethers\n\n\nThen use with a wallet:\n\nimport { prepareLaunch } from './generators/nadfun.js';\nimport { ethers } from 'ethers';\n\nconst prepared = await prepareLaunch(identity, 'mainnet');\n\n// Deploy with wallet\nconst wallet = new ethers.Wallet(privateKey, provider);\nconst router = new ethers.Contract(BONDING_CURVE_ROUTER, abi, wallet);\nawait router.create(tokenParams, fee, toll, tradingAmt, { value: deployFee });\n\n\nBuilt for the agentic future. 🦞"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/starrftw/tokenbroker",
    "publisherUrl": "https://clawhub.ai/starrftw/tokenbroker",
    "owner": "starrftw",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tokenbroker",
    "downloadUrl": "https://openagent3.xyz/downloads/tokenbroker",
    "agentUrl": "https://openagent3.xyz/skills/tokenbroker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tokenbroker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tokenbroker/agent.md"
  }
}