Launch
FORGE Launch CLI Specification
Purpose
Give operators and coding agents a single CLI surface to:
- Generate Agent identity (optional, Grok)
- Simulate ECAs (vault / token / curve)
- Launch vault + token in one transaction via
ForgeLaunchRouter - Wait for indexer confirmation and import into FORGE
The official $FORGE platform launch uses the same path with a platform-registration step afterward.
Cursor agents must follow .cursor/skills/forge-launch-token/SKILL.md (mirrored in Launch a token).
Commands
# Agent / creator token
pnpm cli launch-token --config launch/agents/<slug>.json --simulate
pnpm cli launch-token --config launch/agents/<slug>.json --dry-run
pnpm cli launch-token --config launch/agents/<slug>.json
# Platform $FORGE
pnpm cli launch-forge --config launch/forge.json --simulate
pnpm cli launch-forge --config launch/forge.json --dry-run
pnpm cli launch-forge --config launch/forge.json
# Identity
pnpm cli identity-generate --template trading --seed "..." --out launch/agents/<slug>.json
# Post-launch
pnpm cli wait-indexed --tx 0x...
pnpm cli import-token --tx 0x... --agent-config launch/agents/<slug>.json
pnpm cli import-platform-token --tx 0x...
pnpm cli indexer-backfill --from <block> --to latest--simulate / --dry-run print vault ECA, token ECA, curve ECA, salt, and pinned economics without sending a transaction. Production launch sends one tx through ForgeLaunchRouter (vault create + PONS launch), not two.
--json on simulate/launch prints a machine-readable summary for agents.
launch/forge.json / launch/agents/<slug>.json
{
"name": "FORGE",
"symbol": "FORGE",
"logo": "ipfs-or-public-url",
"description": "FORGE is the ecosystem asset for the FORGE AI agent launchpad.",
"personality": "optional for agent tokens",
"template": "utility",
"agentId": "bytes32-or-mapped-uuid",
"beneficiary": "0x...",
"socials": {
"twitter": "",
"telegram": "",
"discord": "",
"website": ""
},
"launchConfigId": "LIVE_LOOKUP_OR_EXPLICIT",
"pairToken": "0x0000000000000000000000000000000000000000",
"creatorTaxBps": 0,
"buybackEnabled": false,
"initialBuy": "0"
}Do not rely on the sample structure as the exact deployed PONS ABI forever; map it through the PONS adapter. See .cursor/skills/forge-launch-token/config.example.json.
Dry-run / simulate output must include
- connected chain ID
- signer address
- signer ETH balance
canLaunch(signer)- factory + ForgeLaunchRouter addresses
- enabled launch config
- current PONS launch fee
- pair token
- vault ECA (
predictVault) - token ECA + curve ECA (
predictLaunchAddresses) - creator fee recipient (= vault ECA)
- confirmation that launch path is single-tx
ForgeLaunchRouter - optional initial buy
- exact total native value
- economics hash/pinned config if required
Never print the private key.
Confirmation
Production mode must require typing a phrase such as:
LAUNCH FORGE ON CHAIN 4663or for agent tokens:
LAUNCH <SYMBOL> ON CHAIN 4663CI/noninteractive launch is disabled by default (ALLOW_NONINTERACTIVE_LAUNCH required for --yes).
Post-launch
Save a JSON receipt under ./artifacts/launches/:
{
"chainId": 4663,
"txHash": "0x...",
"token": "0x...",
"curve": "0x...",
"vault": "0x...",
"blockNumber": 0,
"factory": "0x...",
"router": "0x...",
"timestamp": "..."
}Then wait until the indexer exposes the token. Import links the indexed token to the Agent (or marks the platform token); it does not fabricate a token row before chain confirmation.
Agent skill requirement
MVP must ship:
.cursor/skills/forge-launch-token/(SKILL.md + reference + example config).cursor/skills/forge-build-mvp/- Root
AGENTS.md docs/agents/*playbooks rendered in the in-app docs site (DOCS_SITE.md)