@smithii/sdk
v0.3.2
Published
Framework-agnostic TypeScript SDK for Smithii's on-chain tools across Solana, EVM, and SUI.
Readme
@smithii/sdk
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.mdYour 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/sdkInstall 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/suiQuick 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:
- Build — the SDK constructs the on-chain instructions (Jito bundles for Solana, calldata for EVM, Move transactions for SUI)
- 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
- 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
- Web app: tools.smithii.io
- npm package: @smithii/sdk
- Issues & support: GitHub Issues
- Twitter: @SmithiiTools
License
Proprietary — see LICENSE for terms. Free to use with a valid Smithii plan.
