{
  "schemaVersion": "1.0",
  "item": {
    "slug": "solana-skills",
    "name": "Solana",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/spendit-ai/solana-skills",
    "canonicalUrl": "https://clawhub.ai/spendit-ai/solana-skills",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/solana-skills",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=solana-skills",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "requirements.txt",
      "scripts/initialize.py",
      "scripts/jup_swap.py",
      "scripts/pumpfun.py",
      "scripts/wallet.py"
    ],
    "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-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-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/solana-skills"
    },
    "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/solana-skills",
    "agentPageUrl": "https://openagent3.xyz/skills/solana-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solana-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solana-skills/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": "Solana Wallet ◎",
        "body": "Solana wallet management and token operations for AI agents."
      },
      {
        "title": "Setup",
        "body": "pip install -r requirements.txt"
      },
      {
        "title": "Initialize Wallet",
        "body": "First, create a new wallet and save the private key to your .env file:\n\npython3 {baseDir}/scripts/initialize.py\n\nThis will:\n\nGenerate a new Solana keypair\nDisplay the public key (wallet address)\nSave the private key in base58 format to .env as SOLANA_PRIVATE_KEY\n\nIMPORTANT: After running initialize.py, export the private key to your environment:\n\nexport SOLANA_PRIVATE_KEY=$(grep SOLANA_PRIVATE_KEY .env | cut -d '=' -f2)\n\nOr source the .env file:\n\nsource .env"
      },
      {
        "title": "Check SOL Balance",
        "body": "python3 {baseDir}/scripts/wallet.py balance\npython3 {baseDir}/scripts/wallet.py balance <wallet_address>"
      },
      {
        "title": "Check Token Balance",
        "body": "python3 {baseDir}/scripts/wallet.py token-balance <token_mint_address>\npython3 {baseDir}/scripts/wallet.py token-balance <token_mint_address> --owner <wallet_address>"
      },
      {
        "title": "Send SOL",
        "body": "python3 {baseDir}/scripts/wallet.py send <recipient_address> <amount_in_sol>"
      },
      {
        "title": "Send SPL Token",
        "body": "python3 {baseDir}/scripts/wallet.py send-token <token_mint_address> <recipient_address> <amount>"
      },
      {
        "title": "Get Wallet Address",
        "body": "python3 {baseDir}/scripts/wallet.py address"
      },
      {
        "title": "Get Swap Quote",
        "body": "python3 {baseDir}/scripts/jup_swap.py quote <input_token> <output_token> <amount>\npython3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1"
      },
      {
        "title": "Execute Swap",
        "body": "python3 {baseDir}/scripts/jup_swap.py swap <input_token> <output_token> <amount>\npython3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.1"
      },
      {
        "title": "List Known Tokens",
        "body": "python3 {baseDir}/scripts/jup_swap.py tokens\n\nToken symbols: SOL, USDC, USDT, BONK, JUP, RAY, PYTH (or use full mint addresses)"
      },
      {
        "title": "Launch Token",
        "body": "python3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png"
      },
      {
        "title": "Launch with Dev Buy",
        "body": "python3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png --buy 0.5"
      },
      {
        "title": "Launch with Custom Mint (Vanity Address)",
        "body": "python3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png --mint-key <base58_key>\n\nUse vanity addresses ending in 'pump' for more legit-looking tokens. Generate with:\n\nsolana-keygen grind --ends-with pump:1"
      },
      {
        "title": "Options",
        "body": "--name - Token name (required)\n--symbol - Token symbol (required)\n--image - Path to token image (required)\n--description or -d - Token description\n--buy or -b - Dev buy amount in SOL\n--mint-key or -m - Custom mint private key (base58)"
      },
      {
        "title": "Network Configuration",
        "body": "By default, wallet operations run on mainnet. Use --network to switch:\n\npython3 {baseDir}/scripts/wallet.py balance --network devnet\npython3 {baseDir}/scripts/wallet.py balance --network testnet"
      },
      {
        "title": "Environment Variables",
        "body": "VariableDescriptionSOLANA_PRIVATE_KEYBase58-encoded private key (required)JUPITER_API_KEYJupiter API key for swaps (required)SOLANA_RPC_URLCustom RPC endpoint (optional)"
      },
      {
        "title": "Examples",
        "body": "# Initialize new wallet\npython3 {baseDir}/scripts/initialize.py\n\n# Check your SOL balance\npython3 {baseDir}/scripts/wallet.py balance\n\n# Send 0.1 SOL to another wallet\npython3 {baseDir}/scripts/wallet.py send 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 0.1\n\n# Check USDC balance (mainnet USDC mint)\npython3 {baseDir}/scripts/wallet.py token-balance EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\n\n# Send 10 USDC to another wallet\npython3 {baseDir}/scripts/wallet.py send-token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 10\n\n# Quote swap: 1 SOL to USDC\npython3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1\n\n# Swap 0.5 SOL to USDC\npython3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.5\n\n# Launch token on Pump.fun\npython3 {baseDir}/scripts/pumpfun.py launch --name \"My Token\" --symbol \"MTK\" --image ./logo.png\n\n# Launch with dev buy\npython3 {baseDir}/scripts/pumpfun.py launch --name \"My Token\" --symbol \"MTK\" --image ./logo.png --buy 1"
      },
      {
        "title": "Common Token Mints (Mainnet)",
        "body": "TokenMint AddressUSDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vUSDTEs9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYBBONKDezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
      },
      {
        "title": "When to Use",
        "body": "Create wallets for new Solana accounts\nCheck balances of SOL or any SPL token\nSend SOL for payments or transfers\nSend tokens for SPL token transfers\nSwap tokens via Jupiter aggregator\nLaunch tokens on Pump.fun with custom images and dev buys\nDevnet testing with --network devnet"
      }
    ],
    "body": "Solana Wallet ◎\n\nSolana wallet management and token operations for AI agents.\n\nSetup\npip install -r requirements.txt\n\nInitialize Wallet\n\nFirst, create a new wallet and save the private key to your .env file:\n\npython3 {baseDir}/scripts/initialize.py\n\n\nThis will:\n\nGenerate a new Solana keypair\nDisplay the public key (wallet address)\nSave the private key in base58 format to .env as SOLANA_PRIVATE_KEY\n\nIMPORTANT: After running initialize.py, export the private key to your environment:\n\nexport SOLANA_PRIVATE_KEY=$(grep SOLANA_PRIVATE_KEY .env | cut -d '=' -f2)\n\n\nOr source the .env file:\n\nsource .env\n\nWallet Operations\nCheck SOL Balance\npython3 {baseDir}/scripts/wallet.py balance\npython3 {baseDir}/scripts/wallet.py balance <wallet_address>\n\nCheck Token Balance\npython3 {baseDir}/scripts/wallet.py token-balance <token_mint_address>\npython3 {baseDir}/scripts/wallet.py token-balance <token_mint_address> --owner <wallet_address>\n\nSend SOL\npython3 {baseDir}/scripts/wallet.py send <recipient_address> <amount_in_sol>\n\nSend SPL Token\npython3 {baseDir}/scripts/wallet.py send-token <token_mint_address> <recipient_address> <amount>\n\nGet Wallet Address\npython3 {baseDir}/scripts/wallet.py address\n\nJupiter Swaps\nGet Swap Quote\npython3 {baseDir}/scripts/jup_swap.py quote <input_token> <output_token> <amount>\npython3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1\n\nExecute Swap\npython3 {baseDir}/scripts/jup_swap.py swap <input_token> <output_token> <amount>\npython3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.1\n\nList Known Tokens\npython3 {baseDir}/scripts/jup_swap.py tokens\n\n\nToken symbols: SOL, USDC, USDT, BONK, JUP, RAY, PYTH (or use full mint addresses)\n\nPump.fun Token Launch\nLaunch Token\npython3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png\n\nLaunch with Dev Buy\npython3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png --buy 0.5\n\nLaunch with Custom Mint (Vanity Address)\npython3 {baseDir}/scripts/pumpfun.py launch --name \"Token Name\" --symbol \"TKN\" --image ./logo.png --mint-key <base58_key>\n\n\nUse vanity addresses ending in 'pump' for more legit-looking tokens. Generate with:\n\nsolana-keygen grind --ends-with pump:1\n\nOptions\n--name - Token name (required)\n--symbol - Token symbol (required)\n--image - Path to token image (required)\n--description or -d - Token description\n--buy or -b - Dev buy amount in SOL\n--mint-key or -m - Custom mint private key (base58)\nNetwork Configuration\n\nBy default, wallet operations run on mainnet. Use --network to switch:\n\npython3 {baseDir}/scripts/wallet.py balance --network devnet\npython3 {baseDir}/scripts/wallet.py balance --network testnet\n\nEnvironment Variables\nVariable\tDescription\nSOLANA_PRIVATE_KEY\tBase58-encoded private key (required)\nJUPITER_API_KEY\tJupiter API key for swaps (required)\nSOLANA_RPC_URL\tCustom RPC endpoint (optional)\nExamples\n# Initialize new wallet\npython3 {baseDir}/scripts/initialize.py\n\n# Check your SOL balance\npython3 {baseDir}/scripts/wallet.py balance\n\n# Send 0.1 SOL to another wallet\npython3 {baseDir}/scripts/wallet.py send 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 0.1\n\n# Check USDC balance (mainnet USDC mint)\npython3 {baseDir}/scripts/wallet.py token-balance EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\n\n# Send 10 USDC to another wallet\npython3 {baseDir}/scripts/wallet.py send-token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 10\n\n# Quote swap: 1 SOL to USDC\npython3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1\n\n# Swap 0.5 SOL to USDC\npython3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.5\n\n# Launch token on Pump.fun\npython3 {baseDir}/scripts/pumpfun.py launch --name \"My Token\" --symbol \"MTK\" --image ./logo.png\n\n# Launch with dev buy\npython3 {baseDir}/scripts/pumpfun.py launch --name \"My Token\" --symbol \"MTK\" --image ./logo.png --buy 1\n\nCommon Token Mints (Mainnet)\nToken\tMint Address\nUSDC\tEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\nUSDT\tEs9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\nBONK\tDezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263\nWhen to Use\nCreate wallets for new Solana accounts\nCheck balances of SOL or any SPL token\nSend SOL for payments or transfers\nSend tokens for SPL token transfers\nSwap tokens via Jupiter aggregator\nLaunch tokens on Pump.fun with custom images and dev buys\nDevnet testing with --network devnet"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/spendit-ai/solana-skills",
    "publisherUrl": "https://clawhub.ai/spendit-ai/solana-skills",
    "owner": "spendit-ai",
    "version": "0.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/solana-skills",
    "downloadUrl": "https://openagent3.xyz/downloads/solana-skills",
    "agentUrl": "https://openagent3.xyz/skills/solana-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/solana-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/solana-skills/agent.md"
  }
}