pump-admin-ops
Admin and authority operations for the Pump protocol — set coin creator, update token incentives, set IDL authority, claim…
Educational single-threaded TypeScript vanity address generator for Solana using @solana/web3.js with async iteration, event-loop yielding, streaming generator API, and best-effort memory zeroization.
$ npx -y skills add nirholas/pump-fun-sdk --skill pump-ts-vanity --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pump-ts-vanityContext preview
The summary Claude sees to decide when to auto-load this skill.
Educational single-threaded TypeScript vanity address generator for Solana using @solana/web3.js with async iteration, event-loop yielding, streaming generator API, and best-effort memory zeroization.
name: pump-ts-vanity
description: "Educational single-threaded TypeScript vanity address generator for Solana using @solana/web3.js with async iteration, event-loop yielding, streaming generator API, and best-effort memory zeroization."
metadata:
openclaw:
homepage: https://github.com/nirholas/pump-fun-sdkSingle-threaded TypeScript vanity address generator using @solana/web3.js with async iteration, event-loop yielding, and streaming generator API.
CLI / Library API
│
VanityGenerator
│
async generator loop
│
Keypair.generate() per iteration
│
AddressMatcher.matches()
│
yield on match / yield progress// 1. Async generator (streaming)
for await (const result of generateVanityAddress({ prefix: 'pump' })) {
console.log(result.address);
break; // stop after first match
}
// 2. First match (promise)
const result = await findVanityAddress({ prefix: 'pump' });
// 3. Batch generation
const results = await findVanityAddresses({ prefix: 'So', count: 5 });async function* generateVanityAddress(config: VanityConfig) {
let attempts = 0;
while (true) {
attempts++;
if (attempts % 1000 === 0) {
await new Promise(resolve => setImmediate(resolve));
}
const keypair = Keypair.generate();
const address = keypair.publicKey.toBase58();
if (matcher.matches(address)) {
yield { keypair, address, attempts };
}
}
}Yields to the event loop every 1,000 iterations to prevent blocking.
| Feature | Rust | TypeScript | |---------|------|-----------| | Speed | 100K+ keys/sec | ~5K keys/sec | | Parallelism | Rayon (multi-core) | Single-threaded | | Memory safety | Zeroize trait | Best-effort fill(0) | | Use case | Production | Educational/prototyping |
// Zeroize secret key after use
const secretKey = keypair.secretKey;
try {
// ... use keypair
} finally {
secretKey.fill(0);
}JavaScript's garbage collector may copy/relocate buffers, so `fill(0)` is best-effort.
Open-source framework for building PumpFun Telegram bots on Solana. Claim monitors, channel feeds, group trackers, whale alerts — build your own or use ours. PumpKit Web App + Documentation
Admin and authority operations for the Pump protocol — set coin creator, update token incentives, set IDL authority, claim…
AI agent integration layer for the Pump SDK — agent instruction files, .well-known discovery, LLM context documents, 15+ skill…
Constant-product AMM bonding curve math for Pump token pricing — buy/sell quoting, fee-aware calculations, market cap…
Build and release pipeline for the Pump SDK — tsup TypeScript builds, Cargo release profiles, semantic release with commitizen,…
Read-only query methods for PumpFun claims — unclaimed token rewards, creator vault balances, volume accumulators, distributable…
Configure and distribute creator fees to multiple shareholders using the PumpFees program with BPS-based share allocation, admin…