npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@smithii/sdk

v0.3.2

Published

Framework-agnostic TypeScript SDK for Smithii's on-chain tools across Solana, EVM, and SUI.

Readme

@smithii/sdk

npm version npm downloads License

Framework-agnostic TypeScript SDK for automating Smithii's on-chain tools — call them from a server, a bot, a CLI, or any custom UI.

If you're looking for the no-code version, head to tools.smithii.io.


Let your Agent handle it

Paste this into Claude Code, Cursor, or any agent that supports the agent skills standard:

add smithii-sdk skill https://tools.smithii.io/skill/skill.md

Your agent will install the Smithii SDK skill and immediately know how to build pump.fun bundlers, anti-MEV bots, token creators, multisenders, and the rest of the toolset — without hallucinating method signatures or limits.


What you can build

  • Pump.fun bundler bots — create a token and snipe it with up to 16 wallets atomically in the same block via Jito
  • PumpSwap bundle buy / sell — multi-wallet trades on graduated pump.fun tokens
  • Launchlab & Bonk (LetsBonk.fun) bundlers — Raydium LaunchLab token launch + snipe
  • Moonit bundler — create and snipe on the Moonit protocol
  • Anti-MEV volume bots — sandwichproof buy+sell bundles in the same block
  • Token creator — deploy SPL tokens on Solana, EVM chains, and SUI
  • Multisender — airdrop tokens to thousands of wallets in one transaction
  • Token manager — revoke authorities, update metadata, snapshot holders
  • Market maker — automated liquidity and volume management
  • Vesting & claims — on-chain vesting schedules and claim flows
  • Mantis — Smithii's launchpad (initialize, edit, buy, claim, withdraw)

Supported chains

| Chain | Tools | |-------|-------| | Solana | pump · pumpswap · bonk · launchlab · moonit · token-creator · token-manager · token-vesting · token-claim · multisender · market-maker · anti-mev · mantis · payment | | EVM | token-creator · multisender · snapshot (ETH, Base, BSC, Polygon, Arbitrum, Avalanche, Blast) | | SUI | token-creator · wallet · snapshot |


Install

npm i @smithii/sdk

Install only the peer deps for the chain(s) you target:

# Solana
npm i @solana/web3.js @solana/spl-token @coral-xyz/anchor

# EVM
npm i viem

# SUI
npm i @mysten/sui

Quick start

Solana — Pump.fun bundler (create token + snipe with multiple wallets)

import { Connection, Keypair } from '@solana/web3.js'
import { PumpFunClient } from '@smithii/sdk/pump'

const client = new PumpFunClient({
  connection: new Connection(process.env.RPC_URL!),
  signer: yourSigner,
  jito: { uuid: process.env.JITO_UUID! },
  proxyUrl: process.env.PROXY_URL!,
})

// 1. Upload metadata (image + socials) to Pump.fun's IPFS endpoint
const metadata = await client.uploadMetadata({
  name: 'My Token',
  symbol: 'MTK',
  description: 'My token description',
  file: imageFile,            // Blob or File
  twitter: null,
  telegram: null,
  website: null,
})

// 2. Atomic create + dev buy + sniper bundle (up to 16 wallets)
const result = await client.createAndSnipeToken({
  mintKeypair: Keypair.generate(),
  metadata,
  devAmount: 0.5,             // SOL the creator buys in the same tx
  buyers: [
    { pk: 'base58-priv-key', amount: 0.1 },
    { pk: 'base58-priv-key', amount: 0.2 },
    // up to 16 wallets
  ],
})

console.log('Create tx:', result.createTxSignature)
console.log('Bundle IDs:', result.bundleIds)

Solana — Anti-MEV volume bot

import { AntiMEVClient } from '@smithii/sdk/anti-mev'

const client = new AntiMEVClient({
  connection,
  signer,
  apiBaseUrl: process.env.BOTS_API_URL!,
  variant: 'pump',            // 'pump' | 'pumpswap' | 'printr'
})

// Sandwichproof buy+sell in the same block, repeated N times
await client.runSingle({
  tokenAddress: 'TokenMintAddress',
  antiMEVUses: 10,                                  // number of buy+sell cycles
  amount: { mode: 'fixed', fixedAmount: 0.05 },     // or { mode: 'random', randomMin, randomMax }
  delay:  { mode: 'fixed', fixedDelay: 2 },         // seconds between cycles
})

Solana — Bundle buy existing token (up to 25 wallets)

import { PublicKey } from '@solana/web3.js'
import { PumpFunClient } from '@smithii/sdk/pump'

await client.bundleSellBuy({
  mint: new PublicKey('TokenMintAddress'),
  action: 'BUY',
  privKeys: ['wallet-1-pk', 'wallet-2-pk'],
  amounts:  [0.1, 0.15],      // SOL per wallet, parallel to privKeys
})

EVM — Multisender airdrop

import { mainnet } from 'viem/chains'
import {
  createEvmWalletClient,
  EvmMultisenderClient,
} from '@smithii/sdk/evm'

const walletClient = createEvmWalletClient({
  chain: mainnet.id,
  account: privateKeyAccount,
})

const sender = new EvmMultisenderClient({ walletClient })

const { hash } = await sender.airdrop({
  token:     '0xTokenAddress',
  projectId: '0x…32-byte hex',          // from indexer.projectIndex(wallet)
  wallets:   [
    { address: '0x…' },
    { address: '0x…' },
  ],
  amount:     100,
  amountMode: 'same',
})

SUI — Deploy a coin (single call covers fee + publish + configure)

import { SuiTokenCreatorClient } from '@smithii/sdk/sui/token-creator'

const client = new SuiTokenCreatorClient({
  signer:  yourSuiSigner,
  network: 'mainnet',
})

const { coinType, treasuryAddress, paymentDigest } = await client.deploy({
  config: {
    name: 'My Coin', symbol: 'MC', decimals: 6,
    description: 'Move-native coin',
    iconUrl: 'https://…',
    initialSupply: 1_000_000n,
    isMintable: false,                  // burns the TreasuryCap after mint
  },
})

How it works

Every tool follows the same pattern:

  1. Build — the SDK constructs the on-chain instructions (Jito bundles for Solana, calldata for EVM, Move transactions for SUI)
  2. Pay — a fee is charged via Smithii's on-chain payment program. For single-tx tools the payment is bundled atomically with the action; for Jito-bundled flows it's sent right after the bundle confirms
  3. Confirm — the SDK polls for confirmation and returns signatures / bundle IDs / tx hashes

All sensitive config (RPC URLs, private keys, Jito UUID, backend URLs) is passed via constructor — nothing is hardcoded.


Signers

| Chain | Signer type | |-------|-------------| | Solana | useWallet() from @solana/wallet-adapter-react, or a raw Keypair adapted to the SDK's Signer interface | | EVM | viem.WalletClient from a Wagmi connector or privateKeyToAccount | | SUI | useWallet() from @suiet/wallet-kit, or a raw Ed25519Keypair adapted to the SDK's SuiSigner interface |


Links


License

Proprietary — see LICENSE for terms. Free to use with a valid Smithii plan.