Package Exports
- clanker-sdk
- clanker-sdk/cli
- clanker-sdk/v3
- clanker-sdk/v4
- clanker-sdk/v4/extensions
Readme
Clanker SDK
The official TypeScript SDK for deploying tokens using Clanker.
Installation
npm install clanker-sdk viem
# or
yarn add clanker-sdk viem
# or
pnpm add clanker-sdk viem
npm run create-clanker node --loader ts-node/esm examples/deploy.ts
Quick Start
There are two ways to deploy tokens using the Clanker SDK:
1. Using the CLI
Run the following command to use our interactive CLI tool:
npm run create-clanker
This will guide you through the token deployment process step by step.
2. Using the TypeScript SDK
- Create a
.env
file with your configuration:
PRIVATE_KEY=<your_private_key_here>
- Create a deployment script:
// deploy-script.ts
import { Clanker } from 'clanker-sdk';
import { createPublicClient, createWalletClient, http, PublicClient } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { base } from 'viem/chains';
// Validate environment variables
const PRIVATE_KEY = process.env.PRIVATE_KEY as `0x${string}`;
if (!PRIVATE_KEY) {
throw new Error("Missing PRIVATE_KEY environment variable.");
}
// Initialize wallet with private key
const account = privateKeyToAccount(PRIVATE_KEY);
const publicClient = createPublicClient({
chain: base,
transport: http(),
}) as PublicClient;
const wallet = createWalletClient({
account,
chain: base,
transport: http(),
});
// Initialize Clanker SDK
const clanker = new Clanker({
wallet,
publicClient,
});
async function deployToken() {
console.log("\nš Deploying Token\n");
// Deploy the token with full configuration
const tokenConfig = {
name: "My Token",
symbol: "TKN",
image: "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
metadata: {
description: "Token with custom configuration including vesting and rewards",
socialMediaUrls: [
{ platform: "x", url: "https://twitter.com/mytoken" },
{ platform: "telegram", url: "https://t.me/mytoken" },
],
auditUrls: ["https://example.com/audit"],
},
context: {
interface: "Clanker SDK",
platform: "Clanker",
messageId: "Deploy Example",
id: "TKN-1",
},
pool: {
quoteToken: "0x4200000000000000000000000000000000000006", // WETH on Base
initialMarketCap: "10", // 10 ETH initial market cap
},
vault: {
percentage: 10, // 10% of tokens vested
durationInDays: 30, // 30-day vesting period
},
devBuy: {
ethAmount: 0, // No initial buy
},
rewardsConfig: {
creatorReward: 75, // 75% creator reward
creatorAdmin: account.address,
creatorRewardRecipient: account.address,
interfaceAdmin: "0x1eaf444ebDf6495C57aD52A04C61521bBf564ace",
interfaceRewardRecipient: "0x1eaf444ebDf6495C57aD52A04C61521bBf564ace",
},
};
try {
const tokenAddress = await clanker.deployToken(tokenConfig);
console.log("Token deployed successfully!");
console.log("Token address:", tokenAddress);
console.log("View on BaseScan:", `https://basescan.org/token/${tokenAddress}`);
} catch (error) {
if (error instanceof Error) {
console.error("Deployment failed:", error.message);
} else {
console.error("Deployment failed with unknown error");
}
process.exit(1);
}
}
deployToken().catch(console.error);
- Run the deployment script:
bun deploy-script.ts
Configuration Options
Basic Token Configuration
name
: Token namesymbol
: Token symbolimage
: IPFS URI for token imagemetadata
: Token metadata (description, social links, etc.)context
: Deployment context information (interface, platform, etc.)
Pool Configuration
pool.quoteToken
: Quote token address (defaults to WETH on Base)pool.initialMarketCap
: Initial market cap in quote token units
Dev Buy Configuration
devBuy.ethAmount
: Amount of ETH for initial buy
Vault Configuration
vault.percentage
: Percentage of tokens to be vested (0-30%)vault.durationInDays
: Duration of the vesting period in days
Rewards Configuration
rewardsConfig.creatorReward
: Creator reward percentage (0-80)rewardsConfig.creatorAdmin
: Creator admin addressrewardsConfig.creatorRewardRecipient
: Creator reward recipient addressrewardsConfig.interfaceAdmin
: Interface admin addressrewardsConfig.interfaceRewardRecipient
: Interface reward recipient address
Examples
See the examples directory for more deployment scenarios:
deploy-token-simple.ts
: Basic token deploymentdeploy-token.ts
: Advanced token deployment with all optionsdeploy-full-sdk.ts
: Full SDK usage example
SDK Development
Setup
The SDK uses bun for development. Install bun following their instructions here: https://bun.sh.
Once bun is installed, the project is ready for development
# Install dependencies
bun i
# Run Examples
# bun <path_to_example>
bun examples/v4/availableRewards.ts
# Run Tests
bun test
# Check coverage
bun test --coverage
# Lint
bun lint
Publishing the package
# Log into npm
bunx npm login
# Dry run publishing
bun publish-package --dry-run
# Publish
bun publish-package
License
MIT