whistle-rpc
v1.2.0
Published
Solana RPC for AI agents -- unlimited JSON-RPC, WebSocket, DEX API, historical data. 1 SOL/month, no rate limits. npx whistle-rpc info
Maintainers
Readme
whistle-rpc
Solana RPC infrastructure for AI agents. Unlimited requests, no rate limits, 1 SOL/month.
What You Get
| Service | URL | What It Does |
|---------|-----|-------------|
| RPC | https://rpc.whistle.ninja | All Solana JSON-RPC 2.0 methods |
| WebSocket | wss://rpc.whistle.ninja/ws | Real-time subscriptions (slots, accounts, logs) |
| DEX API | https://dex.whistle.ninja/v1 | Trending tokens, trades, holders, volume |
| Historical | https://rpc.whistle.ninja/v1 | Enriched transaction & transfer history |
| Agent API | https://api.whistle.ninja | Programmatic subscription (no browser) |
Supported RPC Methods
All standard Solana JSON-RPC 2.0:
Account: getBalance, getAccountInfo, getMultipleAccounts, getTokenAccountsByOwner, getMinimumBalanceForRentExemption
Block: getSlot, getBlockHeight, getBlock, getEpochInfo, getRecentPerformanceSamples
Transaction: sendTransaction, simulateTransaction, getTransaction, getSignaturesForAddress, getLatestBlockhash
Node: getHealth, getVersion
WebSocket Subscriptions
slotSubscribe, accountSubscribe, programSubscribe, signatureSubscribe, logsSubscribe
DEX & Market Data
GET /trending - Top trending tokens
GET /token/:mint - Token price, volume, metadata
GET /volume - Network-wide volume stats
GET /trades/:mint - Recent trades for a token
GET /holders/:mint - Holder distributionHistorical Data
GET /v1/transactions/:address - Enriched transaction history
GET /v1/token-transfers/:address - Token transfer history
GET /v1/swaps/:address - Swap historyQuick Start
# See everything the service offers
npx whistle-rpc info
# Subscribe (1 SOL/month)
npx whistle-rpc subscribe
# Check subscription status
npx whistle-rpc status
# Renew with existing wallet
npx whistle-rpc renewAuthentication
Query param: https://rpc.whistle.ninja?api_key=YOUR_KEY
Header: X-API-Key: YOUR_KEY
Header: Authorization: Bearer YOUR_KEYUsage After Subscribe
import { Connection } from '@solana/web3.js';
const conn = new Connection('https://rpc.whistle.ninja?api_key=YOUR_KEY');
const slot = await conn.getSlot();
const balance = await conn.getBalance(pubkey);
const tx = await conn.sendTransaction(transaction, [signer]);Agent Programmatic Subscription (no CLI needed)
// 1. Get quote
const quote = await fetch('https://api.whistle.ninja/api/agent/subscribe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ walletAddress: keypair.publicKey.toBase58() })
}).then(r => r.json());
// 2. Send 1 SOL to quote.recipient
const tx = new Transaction().add(
SystemProgram.transfer({
fromPubkey: keypair.publicKey,
toPubkey: new PublicKey(quote.recipient),
lamports: quote.amount * LAMPORTS_PER_SOL
})
);
const sig = await sendAndConfirmTransaction(connection, tx, [keypair]);
// 3. Activate and get API key
const sub = await fetch('https://api.whistle.ninja/api/agent/activate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ nonce: quote.nonce, txSignature: sig, walletAddress: keypair.publicKey.toBase58() })
}).then(r => r.json());
// 4. Use RPC
const rpc = new Connection('https://rpc.whistle.ninja?api_key=' + sub.apiKey);Agent Resources
- Skill file: https://whistle.ninja/skill.md
- Tools JSON: https://whistle.ninja/tools.json
- Docs: https://whistle.ninja (API zone)
Pricing
1 SOL/month. Everything included. No tiers. No rate limits. 100% distributed to WHISTLE stakers and node operators.
Links
- Website: https://whistle.ninja
- NPM: https://npmjs.com/package/whistle-rpc
- Skill: https://whistle.ninja/skill.md
