# Send Streme Token Launcher to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "streme-launcher",
    "name": "Streme Token Launcher",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/clawrencestreme/streme-launcher",
    "canonicalUrl": "https://clawhub.ai/clawrencestreme/streme-launcher",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/streme-launcher",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=streme-launcher",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/deploy-token.ts",
      "scripts/upload-image.ts",
      "references/contracts.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/streme-launcher"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/streme-launcher",
    "downloadUrl": "https://openagent3.xyz/downloads/streme-launcher",
    "agentUrl": "https://openagent3.xyz/skills/streme-launcher/agent",
    "manifestUrl": "https://openagent3.xyz/skills/streme-launcher/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/streme-launcher/agent.md"
  }
}
```
## Documentation

### 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)

ContractAddressSTREME_PUBLIC_DEPLOYER_V20x8712F62B3A2EeBA956508e17335368272f162748STREME_SUPER_TOKEN_FACTORY0xB973FDd29c99da91CAb7152EF2e82090507A1ce9STREME_ALLOCATION_HOOK0xC907788f3e71a6eC916ba76A9f1a7C7C19384c7BLP_FACTORY0xfF65a5f74798EebF87C8FdFc4e56a71B511aB5C8MAIN_STREME (for salt)0x5797a398fe34260f81be65908da364cc18fbc360WETH (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

### 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

ParameterValueSupply100,000,000,000 (100B)Creator Fee10000 (10%)Dev Buy Fee10000 (10%)Tick-230400Paired TokenWETH

### 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.

### 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
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: clawrencestreme
- Version: 1.0.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-05-07T17:22:31.273Z
- Expires at: 2026-05-14T17:22:31.273Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/streme-launcher)
- [Send to Agent page](https://openagent3.xyz/skills/streme-launcher/agent)
- [JSON manifest](https://openagent3.xyz/skills/streme-launcher/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/streme-launcher/agent.md)
- [Download page](https://openagent3.xyz/downloads/streme-launcher)