{
  "schemaVersion": "1.0",
  "item": {
    "slug": "whistle-rpc",
    "name": "Whistle RPC",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/DylanPort/whistle-rpc",
    "canonicalUrl": "https://clawhub.ai/DylanPort/whistle-rpc",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/whistle-rpc",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=whistle-rpc",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "SKILL.md",
      "tools.json"
    ],
    "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/whistle-rpc"
    },
    "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/whistle-rpc",
    "agentPageUrl": "https://openagent3.xyz/skills/whistle-rpc/agent",
    "manifestUrl": "https://openagent3.xyz/skills/whistle-rpc/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/whistle-rpc/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": "Whistle RPC — Solana Infrastructure for AI Agents",
        "body": "Production Solana RPC with unlimited JSON-RPC, WebSocket, DEX data, and historical APIs. Designed for AI agents that need reliable blockchain access."
      },
      {
        "title": "Services",
        "body": "ServiceURLWhat It DoesRPChttps://rpc.whistle.ninjaAll Solana JSON-RPC 2.0 methodsWebSocketwss://rpc.whistle.ninja/wsReal-time subscriptions (slots, accounts, logs)DEX APIhttps://dex.whistle.ninja/v1Trending tokens, trades, holders, volumeHistoricalhttps://rpc.whistle.ninja/v1Enriched transaction & transfer historyAgent APIhttps://api.whistle.ninjaSubscription management"
      },
      {
        "title": "Authentication",
        "body": "All endpoints require an API key obtained through subscription:\n\nQuery param:  https://rpc.whistle.ninja?api_key=YOUR_KEY\nHeader:       X-API-Key: YOUR_KEY\nHeader:       Authorization: Bearer YOUR_KEY"
      },
      {
        "title": "Supported RPC Methods",
        "body": "All standard Solana JSON-RPC 2.0:\n\nAccount: getBalance, getAccountInfo, getMultipleAccounts, getTokenAccountsByOwner, getMinimumBalanceForRentExemption\n\nBlock: getSlot, getBlockHeight, getBlock, getEpochInfo, getRecentPerformanceSamples\n\nTransaction: sendTransaction, simulateTransaction, getTransaction, getSignaturesForAddress, getLatestBlockhash\n\nNode: getHealth, getVersion"
      },
      {
        "title": "WebSocket Subscriptions",
        "body": "slotSubscribe, accountSubscribe, programSubscribe, signatureSubscribe, logsSubscribe\n\nExample:\n\n{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"slotSubscribe\"}\n{\"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"accountSubscribe\", \"params\": [\"ADDRESS\"]}\n\nConnect to wss://rpc.whistle.ninja/ws with your API key as a query param."
      },
      {
        "title": "DEX & Market Data",
        "body": "GET /trending          - Top trending tokens\nGET /token/:mint       - Token price, volume, metadata\nGET /volume            - Network-wide volume stats\nGET /trades/:mint      - Recent trades for a token\nGET /holders/:mint     - Holder distribution\n\nBase URL: https://dex.whistle.ninja/v1"
      },
      {
        "title": "Historical Data",
        "body": "GET /v1/transactions/:address      - Enriched transaction history\nGET /v1/token-transfers/:address   - Token transfer history\nGET /v1/swaps/:address             - Swap history\n\nBase URL: https://rpc.whistle.ninja"
      },
      {
        "title": "Subscription Flow (REST API)",
        "body": "Subscription costs 1 SOL/month, paid on-chain. The flow is three HTTP calls and one Solana transfer.\n\nImportant: The payment step sends real SOL on mainnet. The agent must ask the human operator for explicit approval before signing any transaction, display the exact amount and recipient, and use a dedicated low-value wallet."
      },
      {
        "title": "1. Request a quote",
        "body": "POST https://api.whistle.ninja/api/agent/subscribe\nContent-Type: application/json\n\n{ \"walletAddress\": \"YOUR_WALLET_PUBKEY\" }\n\nResponse: { \"nonce\": \"...\", \"amount\": 1, \"recipient\": \"...\", \"duration\": 30 }"
      },
      {
        "title": "2. Send payment on-chain",
        "body": "Transfer amount SOL (from the quote) to the recipient address using a standard Solana SystemProgram.transfer. The agent must confirm the amount and recipient with the user before signing."
      },
      {
        "title": "3. Activate the subscription",
        "body": "POST https://api.whistle.ninja/api/agent/activate\nContent-Type: application/json\n\n{\n  \"nonce\": \"FROM_STEP_1\",\n  \"txSignature\": \"YOUR_TX_SIG\",\n  \"walletAddress\": \"YOUR_WALLET_PUBKEY\"\n}\n\nResponse: { \"apiKey\": \"...\", \"expiresAt\": \"...\", \"rpcUrl\": \"...\", \"wsUrl\": \"...\" }"
      },
      {
        "title": "Check status",
        "body": "GET https://api.whistle.ninja/api/agent/status/YOUR_API_KEY\n\nResponse: { \"active\": true, \"daysLeft\": 29, \"renewalNeeded\": false }"
      },
      {
        "title": "Renewal",
        "body": "When renewalNeeded is true, repeat the subscribe → pay → activate flow. Always confirm with the user before renewing."
      },
      {
        "title": "Pricing",
        "body": "1 SOL/month. Everything included. No tiers. No rate limits. Revenue is distributed to WHISTLE stakers and node operators."
      },
      {
        "title": "Links",
        "body": "Website: https://whistle.ninja\nNPM CLI: https://npmjs.com/package/whistle-rpc\nTools manifest: https://whistle.ninja/tools.json"
      }
    ],
    "body": "Whistle RPC — Solana Infrastructure for AI Agents\n\nProduction Solana RPC with unlimited JSON-RPC, WebSocket, DEX data, and historical APIs. Designed for AI agents that need reliable blockchain access.\n\nServices\nService\tURL\tWhat It Does\nRPC\thttps://rpc.whistle.ninja\tAll Solana JSON-RPC 2.0 methods\nWebSocket\twss://rpc.whistle.ninja/ws\tReal-time subscriptions (slots, accounts, logs)\nDEX API\thttps://dex.whistle.ninja/v1\tTrending tokens, trades, holders, volume\nHistorical\thttps://rpc.whistle.ninja/v1\tEnriched transaction & transfer history\nAgent API\thttps://api.whistle.ninja\tSubscription management\nAuthentication\n\nAll endpoints require an API key obtained through subscription:\n\nQuery param:  https://rpc.whistle.ninja?api_key=YOUR_KEY\nHeader:       X-API-Key: YOUR_KEY\nHeader:       Authorization: Bearer YOUR_KEY\n\nSupported RPC Methods\n\nAll standard Solana JSON-RPC 2.0:\n\nAccount: getBalance, getAccountInfo, getMultipleAccounts, getTokenAccountsByOwner, getMinimumBalanceForRentExemption\n\nBlock: getSlot, getBlockHeight, getBlock, getEpochInfo, getRecentPerformanceSamples\n\nTransaction: sendTransaction, simulateTransaction, getTransaction, getSignaturesForAddress, getLatestBlockhash\n\nNode: getHealth, getVersion\n\nWebSocket Subscriptions\n\nslotSubscribe, accountSubscribe, programSubscribe, signatureSubscribe, logsSubscribe\n\nExample:\n\n{\"jsonrpc\": \"2.0\", \"id\": 1, \"method\": \"slotSubscribe\"}\n{\"jsonrpc\": \"2.0\", \"id\": 2, \"method\": \"accountSubscribe\", \"params\": [\"ADDRESS\"]}\n\n\nConnect to wss://rpc.whistle.ninja/ws with your API key as a query param.\n\nDEX & Market Data\nGET /trending          - Top trending tokens\nGET /token/:mint       - Token price, volume, metadata\nGET /volume            - Network-wide volume stats\nGET /trades/:mint      - Recent trades for a token\nGET /holders/:mint     - Holder distribution\n\n\nBase URL: https://dex.whistle.ninja/v1\n\nHistorical Data\nGET /v1/transactions/:address      - Enriched transaction history\nGET /v1/token-transfers/:address   - Token transfer history\nGET /v1/swaps/:address             - Swap history\n\n\nBase URL: https://rpc.whistle.ninja\n\nSubscription Flow (REST API)\n\nSubscription costs 1 SOL/month, paid on-chain. The flow is three HTTP calls and one Solana transfer.\n\nImportant: The payment step sends real SOL on mainnet. The agent must ask the human operator for explicit approval before signing any transaction, display the exact amount and recipient, and use a dedicated low-value wallet.\n\n1. Request a quote\nPOST https://api.whistle.ninja/api/agent/subscribe\nContent-Type: application/json\n\n{ \"walletAddress\": \"YOUR_WALLET_PUBKEY\" }\n\n\nResponse: { \"nonce\": \"...\", \"amount\": 1, \"recipient\": \"...\", \"duration\": 30 }\n\n2. Send payment on-chain\n\nTransfer amount SOL (from the quote) to the recipient address using a standard Solana SystemProgram.transfer. The agent must confirm the amount and recipient with the user before signing.\n\n3. Activate the subscription\nPOST https://api.whistle.ninja/api/agent/activate\nContent-Type: application/json\n\n{\n  \"nonce\": \"FROM_STEP_1\",\n  \"txSignature\": \"YOUR_TX_SIG\",\n  \"walletAddress\": \"YOUR_WALLET_PUBKEY\"\n}\n\n\nResponse: { \"apiKey\": \"...\", \"expiresAt\": \"...\", \"rpcUrl\": \"...\", \"wsUrl\": \"...\" }\n\nCheck status\nGET https://api.whistle.ninja/api/agent/status/YOUR_API_KEY\n\n\nResponse: { \"active\": true, \"daysLeft\": 29, \"renewalNeeded\": false }\n\nRenewal\n\nWhen renewalNeeded is true, repeat the subscribe → pay → activate flow. Always confirm with the user before renewing.\n\nPricing\n\n1 SOL/month. Everything included. No tiers. No rate limits. Revenue is distributed to WHISTLE stakers and node operators.\n\nLinks\nWebsite: https://whistle.ninja\nNPM CLI: https://npmjs.com/package/whistle-rpc\nTools manifest: https://whistle.ninja/tools.json"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/DylanPort/whistle-rpc",
    "publisherUrl": "https://clawhub.ai/DylanPort/whistle-rpc",
    "owner": "DylanPort",
    "version": "1.0.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/whistle-rpc",
    "downloadUrl": "https://openagent3.xyz/downloads/whistle-rpc",
    "agentUrl": "https://openagent3.xyz/skills/whistle-rpc/agent",
    "manifestUrl": "https://openagent3.xyz/skills/whistle-rpc/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/whistle-rpc/agent.md"
  }
}