streme-launcher
Launch tokens on Streme (streme.fun) - the streaming token platform on Base. Use when deploying SuperTokens with built-in staking rewards, Uniswap V3 liquidity, and optional vesting vaults. Triggers on "launch token on streme", "deploy streme token", "create supertoken", or any Streme token deployment task.
- License 许可
- MIT
- 最近更新
- 2026-04-05
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- streme-launcher
- description
- Launch tokens on Streme (streme.fun) - the streaming token platform on Base. Use when deploying SuperTokens with built-in staking rewards, Uniswap V3 liquidity, and optional vesting vaults. Triggers on "launch token on streme", "deploy streme token", "create supertoken", or any Streme token deployment task.
02 资源文件 4
- 参考文档_meta.json297 B
- 参考文档references/contracts.md4.7 KB
- 脚本scripts/deploy-token.ts7.2 KB
- 脚本scripts/upload-image.ts5.0 KB
03 SKILL.md 正文
Streme Token Launcher
Deploy SuperTokens on Base via Streme's V2 contracts. Tokens include automatic Uniswap V3 liquidity, Superfluid streaming staking rewards, and optional vesting vaults.
Quick Start
import { createWalletClient, http, parseEther, encodeAbiParameters } from 'viem';
import { base } from 'viem/chains';
import { privateKeyToAccount } from 'viem/accounts';
// See references/contracts.md for full ABIs
const DEPLOYER = '0x8712F62B3A2EeBA956508e17335368272f162748';
const tokenConfig = {
_name: 'My Token',
_symbol: 'MYTOKEN',
_supply: parseEther('100000000000'), // 100B
_fee: 10000, // 10%
_salt: '0x0...', // from generateSalt()
_deployer: walletAddress,
_fid: 0n, // Farcaster FID or 0
_image: 'https://example.com/image.png',
_castHash: 'deployment',
_poolConfig: {
tick: -230400,
pairedToken: '0x4200000000000000000000000000000000000006', // WETH
devBuyFee: 10000
}
};
// Deploy with 10% staking (1 day lock, 365 day stream)
const stakingAlloc = createStakingAllocation(10, 1, 365);
await deployWithAllocations(tokenConfig, [stakingAlloc]);
Contract Addresses (Base Mainnet)
| Contract | Address |
|---|---|
| STREME_PUBLIC_DEPLOYER_V2 | 0x8712F62B3A2EeBA956508e17335368272f162748 |
| STREME_SUPER_TOKEN_FACTORY | 0xB973FDd29c99da91CAb7152EF2e82090507A1ce9 |
| STREME_ALLOCATION_HOOK | 0xC907788f3e71a6eC916ba76A9f1a7C7C19384c7B |
| LP_FACTORY | 0xfF65a5f74798EebF87C8FdFc4e56a71B511aB5C8 |
| MAIN_STREME (for salt) | 0x5797a398fe34260f81be65908da364cc18fbc360 |
| WETH (Base) | 0x4200000000000000000000000000000000000006 |
Deployment Flow
- Generate Salt - Call
generateSalt()to get deterministic token address - Upload Image - Host token image (see Image Hosting below)
- Build Config - Create tokenConfig and allocations
- Deploy - Call
deployWithAllocations()
Image Hosting
Token images must be publicly accessible URLs. Options:
IPFS (Recommended)
// Using Pinata
const pinata = new PinataSDK({ pinataJwt: PINATA_JWT });
const { IpfsHash } = await pinata.pinFileToIPFS(fileStream);
const imageUrl = `https://gateway.pinata.cloud/ipfs/${IpfsHash}`;
Cloudinary
import { v2 as cloudinary } from 'cloudinary';
const result = await cloudinary.uploader.upload(imagePath, {
folder: 'tokens',
transformation: [{ width: 400, height: 400, crop: 'fill' }]
});
const imageUrl = result.secure_url;
Direct URL
Any publicly accessible image URL works:
const imageUrl = 'https://example.com/my-token.png';
Requirements
- Format: PNG, JPG, GIF, WebP
- Size: < 5MB (< 1MB recommended)
- Dimensions: Square preferred (400x400 ideal)
Upload Script
# IPFS via Pinata
PINATA_JWT=xxx npx ts-node scripts/upload-image.ts pinata ./token.png
# Cloudinary
CLOUDINARY_CLOUD_NAME=xxx CLOUDINARY_API_KEY=xxx CLOUDINARY_API_SECRET=xxx \
npx ts-node scripts/upload-image.ts cloudinary ./token.png
# imgBB (free)
npx ts-node scripts/upload-image.ts imgbb ./token.png
Allocations
Staking Allocation (Type 1)
Streams tokens to stakers over time.
function createStakingAllocation(
percentage: number, // % of supply (e.g., 10)
lockDays: number, // min stake duration
flowDays: number, // reward stream duration
delegate?: string // optional admin address
) {
const lockSec = lockDays * 86400;
const flowSec = flowDays * 86400;
return {
allocationType: 1,
admin: delegate || '0x0000000000000000000000000000000000000000',
percentage: BigInt(percentage),
data: encodeAbiParameters(
[{ type: 'uint256' }, { type: 'int96' }],
[BigInt(lockSec), BigInt(flowSec)]
)
};
}
Vault Allocation (Type 0)
Locked tokens with optional vesting.
function createVaultAllocation(
percentage: number, // % of supply
beneficiary: string, // recipient address
lockDays: number, // lockup (min 7 days)
vestingDays: number // vesting after lock
) {
const lockSec = Math.max(lockDays, 7) * 86400;
const vestSec = vestingDays * 86400;
return {
allocationType: 0,
admin: beneficiary,
percentage: BigInt(percentage),
data: encodeAbiParameters(
[{ type: 'uint256' }, { type: 'uint256' }],
[BigInt(lockSec), BigInt(vestSec)]
)
};
}
Allocation Rules
- Staking + Vault percentages must be ≤100%
- Remaining % goes to Uniswap V3 LP
- Vault lock minimum: 7 days
- Standard config: 10% staking, 90% LP
Token Config Defaults
| Parameter | Value |
|---|---|
| Supply | 100,000,000,000 (100B) |
| Creator Fee | 10000 (10%) |
| Dev Buy Fee | 10000 (10%) |
| Tick | -230400 |
| Paired Token | WETH |
API Endpoints
# Get tokens by deployer
GET https://api.streme.fun/api/tokens/deployer/{address}
# Search all tokens
GET https://api.streme.fun/api/tokens
# Token details
GET https://api.streme.fun/api/tokens/{address}
Full Implementation
See scripts/deploy-token.ts for complete deployment script.
See references/contracts.md for full ABIs and type definitions.
Common Patterns
Standard Launch (10% staking)
const allocations = [createStakingAllocation(10, 1, 365)];
With Team Vault (10% staking + 10% vested)
const allocations = [
createStakingAllocation(10, 1, 365),
createVaultAllocation(10, teamAddress, 30, 365)
];
Max Liquidity (no allocations)
const allocations = [];
// 100% goes to Uniswap V3 LP
04 同仓库更多 Skills
zyfai
Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit/withdraw anytime.
zerion-api
暂无简介
zerion-api-skill
暂无简介
zerion-api-mcp
暂无简介
yahoo-finance-forex
Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR/USD, GBP/USD, USD/JPY, etc.). Analyzes sentiment and provides trading context.
yahoo-finance
This skill should be used when the user asks to "get stock prices", "check stock quotes", "look up earnings", "get financial data", "find trending stocks", or needs stock market data from Yahoo Finance.