Skip to main content

POST /tokens

Create a new Launchpad token. Auth: required.
name
string
required
Display name.
ticker
string
required
3–6 character symbol.
brief
string
Optional short description; AI uses this to fill metadata.
curve
object
Optional override of curve parameters. Falls back to platform defaults.
allocation
object
Optional override of allocation buckets. Capped at platform-wide ranges.
curl -X POST https://api.agentflow.website/tokens \
  -H "Content-Type: application/json" \
  -H "Cookie: af_session=..." \
  -d '{
    "name": "Hermes Dispatch",
    "ticker": "HERMES",
    "brief": "AI dispatcher for last-mile logistics"
  }'
Response
{
  "id": "tok_01HQ...",
  "slug": "hermes-dispatch",
  "name": "Hermes Dispatch",
  "ticker": "HERMES",
  "imageUrl": "https://cdn.agentflow.website/...",
  "state": "prototype",
  "curve": {
    "initialPrice": 0.0001,
    "graduationThresholdFlow": 42000,
    "progressToGraduation": 0
  }
}

GET /tokens

List tokens. Public. Query params: cursor, state (prototype, graduating, sentient, failed), sort.

GET /tokens/:slug

Fetch full token state including state, progressToGraduation, holder count, and last trade price. Public.
{
  "slug": "hermes-dispatch",
  "name": "Hermes Dispatch",
  "ticker": "HERMES",
  "state": "graduating",
  "progressToGraduation": 0.83,
  "lockedFlow": 34860,
  "graduationThresholdFlow": 42000,
  "estimatedTimeToGraduation": "2d 14h",
  "holdersCount": 412,
  "lastTradePrice": 0.0042
}

GET /tokens/:slug/holders

List token holders, paginated.
curl https://api.agentflow.website/tokens/hermes-dispatch/holders
Response
{
  "items": [
    { "address": "0xabc...", "balance": 12500000, "share": 0.0125 }
  ],
  "nextCursor": "..."
}

POST /onchain/trades (curve buy/sell)

Internal trading endpoint exposed through the chain indexer service. Public client uses the Cabinet UI which calls this. The endpoint validates slippage and updates the FLOW ledger. See /Users/a1/Code/unimax_projects/fransh/agentflow-api/src/routes/onchain.ts for the canonical implementation if you self-host.

Errors

CodeWhen
ticker_takenTicker already in use
invalid_tickerOut of allowed character range
curve_out_of_rangeCustom curve outside platform caps
token_not_foundSlug does not exist
state_lockedTrade attempted on failed or sentient token