Token Launching Overview
Launch a token for your AI agent and earn trading fees automatically. This is how agents fund themselves.
Why Launch a Token?
When you launch a token through Bankr:
- Liquidity pool is created — Your token is immediately tradeable
- Trading fees accumulate — Every trade generates fees
- Fees flow to you — Claim your earnings anytime
- Fund your compute — Use fees to pay for your agent's API costs
- Hold an allocation — by default, 15% of supply vests to you over 1 year (30-day cliff); on Arc it's opt-in
Launching via Natural Language
Simply tell Bankr what you want to deploy. Tokens deploy to Robinhood Chain by default — say on base, on arbitrum or on arc to deploy there instead:
"deploy a token called MyAgent with symbol AGENT"
"launch a token called CoolBot"
Available via the Bankr Terminal, bankr agent, and social platforms.
Launching via Social (Built-in Virality)
Deploy directly from X (Twitter) by tagging @bankrbot:
@bankrbot deploy a token called MyAgent
This creates instant social proof and discoverability for your token.
Launching via CLI
The Bankr CLI provides an interactive wizard for token launches with full control over metadata and fee routing:
Chat, social and API deploys default to Robinhood Chain; the CLI and the web launch form default to Base.
# Interactive wizard (recommended for first-time launches)
bankr launch
# Headless launch with all options
bankr launch --name "MyToken" \
--image "https://example.com/logo.png" \
--tweet "https://x.com/user/status/123" \
--website "https://example.com" \
--yes
# Launch on Robinhood Chain
bankr launch --name "MyToken" --chain robinhood --yes
# Launch on Robinhood Chain quoted in tokenized AAPL instead of WETH
bankr launch quotes --chain robinhood # list what you can pair with
bankr launch --name "MyToken" --chain robinhood --quote AAPL --yes
# With fee recipient (route fees to collaborators)
bankr launch --name "MyToken" --fee "@partner" --fee-type x --yes
The wizard asks for the token name (required), symbol, image, chain (Base, Robinhood Chain or Arbitrum), the quote token — WETH, a tokenized stock or an additional quote token — creator vesting, fee collection, tweet, website and fee recipient; any flag you pass skips its prompt.
All bankr launch commands deploy to Base unless --chain robinhood or --chain arbitrum is passed, and display a summary before confirmation. Use --yes to skip confirmation in automated scripts. bankr launch quotes --chain <chain> prints the quote tokens a launch can pair with there; pass one to --quote by symbol or address.
Install the CLI:
npm install -g @bankr/cli
See the CLI documentation for full options and examples.
Launching with OpenClaw
For AI agents using OpenClaw, the Token Strategist skill provides intelligent token planning and deployment:
install the skill from https://github.com/BankrBot/token-strategist
Token Strategist evaluates your concept against five market forces, sets up fee distribution, and executes launches through the Bankr CLI. This is ideal for agents that need to autonomously manage token economics and deployment strategy.
Learn more: Token Strategist on GitHub
Deployment Limits
Every Bankr wallet — Standard, Bankr Club, partner organization and provisioned partner wallets alike — gets 3 counted launch attempts per rolling 24 hours. You can also deploy at most one token per minute. On Base, all 3 attempts are eligible for gas sponsorship when the wallet is otherwise eligible; on Robinhood Chain and Arbitrum the launch wallet pays network gas from its own ETH, and on Arc in USDC. Partner sponsorship still follows the organization's sponsorship policy.
A slot is handed back whenever the launch provably never reached the chain. Bankr reserves quota when a deploy starts and releases it on validation, resolution, pricing and metadata-pinning failures — everything that fails before the deploy is submitted. Submit-stage failures release the slot only when Bankr can prove nothing was broadcast; if a signer error or a timeout leaves that in doubt, the slot deliberately stays counted rather than risk handing back a launch that actually landed. What counts is a completed launch, a launch still in flight, and any failure that may have gone out. Simulations never reserve or consume a slot; retail simulations still run the wallet-age check, but the minimum-balance check stays off.
Because simulations are quota-free, they carry their own ceiling: 20 simulations per Bankr wallet per rolling 24 hours. Exceeding it returns 429 with "Too many launch simulations in the last 24 hours." Partner deploy paths are exempt, as they are from the other retail gates.
Quota-free is not the same as always available: a wallet that has already used all 3 counted launch attempts in the window can't simulate either, and gets the same 429 a real deploy would. Simulating still doesn't consume a slot — it just respects an exhausted wallet.
The same rule applies to the other launch controls: the per-fee-recipient daily cap and the duplicate-name caps (per wallet and global) count only launches that went out, so a run of failed attempts no longer locks you out of relaunching the same name.
After the third counted attempt, wait until the oldest attempt leaves the rolling 24-hour window before trying again. Partner-specific organization and fee-recipient controls still apply in addition to the wallet cap.
Separately, Bankr caps deploys from a single network (IP address) at roughly 10 successful deploys per 24 hours. Only deploys that succeed are counted — failed attempts and rate-limited requests are not — and deploys made with an org Partner Key are exempt, since many end-users share one partner server's IP. Provisioned wallets deploying with their own API key are counted. Exceeding it returns 429 with "Too many token deployments from this network." Treat the number as approximate: the counter lives in the API process serving you and its 24-hour window starts at your first counted deploy rather than each deploy ageing out individually.
Bankr may require a retail launch wallet to be at least 24 hours old (measured from when Bankr created the wallet, not from the age of an X or other social account) and to hold a minimum native ETH balance on the launch chain. Both controls are runtime switches; a launch that fails one answers with TOKEN_LAUNCH_WALLET_TOO_NEW or TOKEN_LAUNCH_MIN_BALANCE_REQUIRED. Even with both off, on Robinhood Chain and Arbitrum the wallet needs enough native ETH to pay the launch's own gas, and Arc launches need 0.5 USDC (Arc's gas token).
A wallet whose only sign-in is an email address still waits 72 hours before it can launch; this anti-farm control is independent of the switches above. Linking an X, Farcaster or Telegram account lifts it — those identities are what the wait substitutes for.
These checks run before Bankr reserves launch quota, pins metadata, or submits a transaction, so an eligibility rejection does not consume a launch attempt or gas. Validated active partner-organization and provisioned-wallet launch paths are exempt from both retail requirements. The exemption is available only while the organization is active with token launching enabled and, for a provisioned wallet, the wallet remains active and linked to that organization.
These gates run on every launch path — chat, X, Telegram, /agent/prompt and the REST deploy routes alike — so the same answer comes back wherever you launch from. Launching is also unavailable from some regions. A launch blocked by a region or account-shape gate answers with a deliberately generic TOKEN_LAUNCH_NOT_AVAILABLE: "Token launches are not available for this wallet right now." If you believe you've hit one of these in error, open a ticket at the Bankr Help Center.
High-volume deploys in a short period can trigger Bankr's automated spam protections and result in temporary or permanent restrictions on your account. This is enforced hardest on the X (Twitter) path, where a mention can kick off a deploy: repeatedly breaching the one-per-minute limit will restrict your account for 24 hours — a limited state, not a lockout (you can still log in, view balances, and withdraw), you just have to wait for it to lift before launching again. Legitimate high-volume use cases (e.g. programmatic deploy products) may be accommodated — open a ticket at the Bankr Help Center explaining your use case before scaling up.
Five-Minute Balance Cap
For the first five minutes after a non-partner Doppler launch, each wallet may hold no more than 2% of the token's total supply. A buy or transfer that would leave the receiving wallet above 2% fails until the cap expires.
This balance cap is separate from the 14-second anti-snipe fee decay: the anti-snipe mechanism changes the swap fee, while this rule limits the recipient's token balance. Partner launches are exempt. The expiry is encoded on-chain at launch, so existing tokens keep the expiry configured when they launched.
Fee Structure
This section and the launch options below describe Doppler launches (launch.launchType: doppler). Arc launches run on Bankr Launch v3 instead, and while v3 rolls out on Arbitrum, an Arbitrum launch that doesn't name a provider may be served by v3 as well: the deploy response's provider (and launch.launchType on GET /token-launches/{tokenAddress}) says which path a launch took, and sending "provider": "doppler" keeps Doppler.
Every trade pays a 0.7% swap fee on the pool — and 95% of it goes to you, the creator (0.665% of trading volume). On top of that, the hook adds the Bankr protocol fee + BNKR buyback and LP fee — including your token's own 0.285% LP fee, which automatically compounds as permanently locked liquidity in your pool, deepening your coin's liquidity floor with every trade. All-in, the total swap fee is 1.75% of trading volume:
| Recipient | Share of volume |
|---|---|
| Creator (you) — 95% of the 0.7% pool swap fee; paid directly, claim anytime | 0.665% |
| LP fee (via hook) — compounds as permanently locked liquidity in your pool | 0.285% |
| Bankr protocol fee (via hook) | 0.475% |
| BNKR buyback (via hook — BNKR buybacks + protocol-owned BNKR liquidity) | 0.2375% |
| Protocol (Doppler) | ~0.0875% |
That's the 0.7% pool fee with 95% going to you, plus the hook-added Bankr protocol fee + BNKR buyback and LP fee — and since the LP fee compounds in your token's own pool, the creator side totals 0.95% of volume.
Fees accumulate in your token and the pool's quote token (WETH by default). Use the Terminal or bankr agent "claim my token fees" to collect your share.
Fee schedules are fixed at launch and never change retroactively. Tokens launched earlier keep the schedule they launched with — the creator's 95% of the 0.7% pool fee works the same; only the hook add-on differs. The split above applies to new launches only.
Token Supply
Each token's supply is fixed and non-mintable after deployment. Standard launches use 100 billion tokens, allocated at launch as follows:
| Allocation | Share | Where it goes |
|---|---|---|
| Liquidity pool | 85% | Seeded into the Uniswap V4 pool — immediately tradeable |
| Creator vesting | 15% | Vested to the fee recipient over 1 year (30-day cliff) |
Creator vesting
By default, every Doppler launch premints 15% of supply to the fee recipient and vests it over 1 year total, with a 30-day cliff: nothing unlocks for the first 30 days, then it vests continuously until fully unlocked at the one-year mark (the cliff is inside the one-year window, not added to it). The remaining 85% seeds the liquidity pool, so trading starts clean.
- Recipient — the fee recipient set at launch (your own wallet by default, or a third party you designate — the same address that earns the creator fee share).
- Fixed at launch — the vesting recipient is locked when the token is created and can't be reassigned. Transferring your fee rights later does not move the vested allocation; it stays with the original recipient.
- Optional — you can turn vesting off at launch. Ask the agent to deploy "with no vesting", pick No vesting in the web launch flow's Vesting step, or pass
disableVesting: trueto the deploy API (--no-vestingin the CLI). With vesting off, 100% of supply is sold into the pool and no allocation is preminted. A Doppler launch has no custom percentage or schedule — vesting is either the default 15% or off.
Claiming vested tokens
Vested supply sits in the token's own escrow until you release it — it does not land in your wallet automatically.
In the web terminal, a Creator Vesting section on the token page and the trade panel shows the schedule (cliff date, fully-vested date, percent unlocked) and breaks the allocation into Total allocation, Claimable now, Claimed and Locked. Claim vested tokens releases everything currently claimable to the vesting recipient's wallet. The same vested row and claim action appear on the launches card and in the token's Manage drawer. Before the cliff the button shows the unlock date instead — nothing is releasable in the first 30 days.
The schedule itself is public on-chain data and renders for every viewer; only the vesting recipient can claim. The recipient is fixed at launch and non-transferable — transferring your fee rights does not move the vested allocation.
Three endpoints back this:
| Endpoint | Auth | Purpose |
|---|---|---|
GET /token-launches/{tokenAddress}/vesting | None | Schedule and position. ?beneficiary=0x… checks a specific wallet; defaults to the launch's recorded vesting recipient. 404 for non-Bankr tokens. |
POST /token-launches/{tokenAddress}/vesting/build-claim | None | Unsigned release() transaction for an external wallet to sign locally. release only ever pays msg.sender, so holding the key is the authorization. |
POST /token-launches/{tokenAddress}/vesting/claim | Same as fee claims | Custodial claim from your Bankr wallet. |
A claim releases everything releasable at the moment it mines rather than a fixed quoted amount, so it won't revert if a second release lands first — it reverts only when there is genuinely nothing to release.
Quote-only fees
By default, creator fees accrue as a mix of the launched token and the quote token (e.g. WETH). At launch you can instead opt into quote-only fees, so all creator fees are collected in the quote token — your total take is identical either way. Ask the agent to "launch a token with quote-only fees", toggle it in the web launch form, pass quoteOnlyFees: true to the deploy API, or use --quote-only-fees in the CLI. Like the fee schedule itself, this option is fixed at launch.
Degen mode
Degen mode starts your token at a $2,500 market cap instead of the standard starting valuation — a much smaller float to climb through, so early trades move the chart far harder in both directions.
- Explicit opt-in. Ask the agent for "degen mode" by name, or flip the Degen mode switch in the web launch form; the API takes
degenMode: true. The agent won't infer it from a token called DEGEN or from generally risk-hungry phrasing. - Only the starting valuation changes. Supply, the fee schedule, and creator vesting are exactly as they are on a standard launch.
- Fixed at launch, like every other launch option, and $2,500 is the only setting — there's no custom starting market cap.
- Not available on partner launches. A deploy that combines an org Partner Key with degen mode is rejected.
Stock-paired launches
Instead of pairing the new token's pool with WETH, a launch on Robinhood Chain or Base can pair it with a registry tokenized stock — a Robinhood Stock Token (AAPL, TSLA, NVDA, SPY, and ~190 more) or a Coinbase B20 equity on Base — so the token trades against equity exposure rather than against ETH.
- Listing what you can pair with.
GET /token-launches/quote-tokens?chain=robinhood(orchain=base) returns every quote token the chain offers, the default first: WETH, then the chain's fixed allowlist (BNKR and musebook on Robinhood Chain; BNKR, ba3Pump, cbHYPE, cbZEC and TAO on Base), then every stock Bankr can price there. Each entry names the deploy field that selects it (deployField) and, for stocks, an advisoryilliquidverdict. The same list backs the web launch form's picker andbankr launch quotes --chain <chain>in the CLI. See List quote tokens. - Choosing one. Pass the stock's contract address as
pairedStockAddressin the deploy body (a ticker is rejected — the address pins the deployment on that chain), together withprovider: "doppler"so the pairing is honoured by the provider that listed it. In the CLI,bankr launch --chain robinhood --quote TSLAresolves the symbol for you; the agent takes a ticker or company name ("launch X paired with TSLA on robinhood"). - Only priceable, active stocks are offered. The launch curve's tick math needs a live USD price, so a stock whose feed is stale or whose deployment the issuer retired is refused up front rather than failing late. A thin stock pool (
illiquid: true) still launches — it is just hard to trade until liquidity arrives. - User-key launches only; not available on Arbitrum or on partner-key deploys. Cannot be combined with
pairedTokenAddress; omit both to use WETH. Deploying a stock-quoted pool has no location gate — only trading the stock leg is geo-verified, like any other tokenized-stock trade.
Additional quote tokens
A launch can quote the new token's pool in one of its chain's fixed allowlisted tokens instead of WETH. In the deploy API, pass the matching chain with one of these fixed pairedTokenAddress values; each address is valid only on its own chain.
Base (chain: "base") — BNKR, ba3Pump, cbHYPE, cbZEC, or TAO. ba3Pump is Bankr-bridged PUMP from Solana; cbHYPE and cbZEC are Coinbase-wrapped crypto assets, not tokenized stocks; TAO is Bittensor's TAO on Base.
- BNKR —
0x22af33fe49fd1fa80c7149773dde5890d3c76f3b - ba3Pump —
0x5577a294ae5a21446a11b0e4100ca83803995720 - cbHYPE —
0xB200000000000000000000451d033a5000cb479e - cbZEC —
0xB2000000000000000000008501b13360000cb2EC - TAO —
0xf3081494b87e8d5fb7960f066e931d1d0e6e3d67
cbHYPE and cbZEC remain visible while their reviewed Aerodrome USDC pools are being seeded, but can only be selected or deployed after Bankr verifies at least $10,000 of two-sided pool value and executable depth. Their readiness refreshes automatically; an unavailable price or liquidity check returns a retryable conflict without starting a launch.
Robinhood Chain (chain: "robinhood") — BNKR (the Robinhood Chain BNKR contract, a different address from Base BNKR) or musebook, a token launched on Robinhood Chain through Bankr.
- BNKR —
0x178E54df3D091EE4D0B2534742eF9e3692b76526 - musebook —
0x91A2DAe9699f0B82540B5886b0d8759C22820bA3
This option is available for user-key launches only and is not offered on Arbitrum. pairedTokenAddress cannot be combined with pairedStockAddress; omit both to use WETH. Trading volume in the additional quote-token launch pools remains eligible for the weekly developer rebate under the same rules as WETH-quoted launches.
Launches deployed with an org Partner Key sell the full 100% into the pool and do not include creator vesting.
Bankr Launch v3 (Arc)
Arc launches, and Arbitrum launches that v3 serves during its rollout there, run on Bankr Launch v3 (provider: "bankr_v3"; launch.launchType is bankr_v3) rather than Doppler, so the fee schedule, supply and launch options above don't apply:
- Pool and fees — one Uniswap v3 pool at the 1% fee tier, quoted in native USDC (Arc's only quote token and its gas token). Its LP fees split 70% creator / 30% Bankr; there is no launch fee.
- Supply — 1 billion tokens.
- Creator vesting is off by default. Set
launchV3.vestPercent(whole percent, up to 50) for a 1-year schedule with a 30-day cliff; vested supply plus any dev buy can't exceed 50% of supply. Vested tokens are claimed as in Claiming vested tokens. - Dev buy —
launchV3.devBuy.amountbuys your token with that many USDC as the pool's first swap, inside the launch transaction. - Fees to holders —
launchV3.holderSharePercent(1–100) streams that share of the creator's fees to token holders, paid perlaunchV3.holderMode:token,paired(USDC) orboth(the default).launchV3.holderVestPercentstreams part of the vested slice to holders on the same schedule. - Receive fees as —
launchV3.creatorFeeMode:quote(default: token-side fees are sold into USDC gradually, at most 5% price impact per sale),token, orboth(each leg in kind). It changes what you're paid in, never how much.
quoteOnlyFees, degenMode and disableVesting are Doppler-only: a v3 launch that sets one to true is rejected with 400. pairedStockAddress and pairedTokenAddress have no effect on a v3 launch. The launch wallet pays gas in USDC and needs at least 0.5 USDC plus any dev buy. Launch on Arc from chat, the web launch form or the API (the CLI covers Base, Robinhood Chain and Arbitrum); claim and transfer creator fees as in Claiming Fees and Transferring fees.
End-to-end Flow
Most integrations follow the same three-step lifecycle. Each step has a narrative guide and, for endpoints currently covered, an interactive "Try it" reference.
1. Deploy
Launch a new token on Robinhood Chain, Base, Arbitrum, or Arc (default Robinhood Chain). Returns the token address, pool and fee split. Pass "chain": "base", "chain": "arbitrum" or "chain": "arc" in the request body to deploy there — partner deploys remain Base-only, Doppler launches on Arbitrum are WETH-paired (no pairedStockAddress / pairedTokenAddress), and Arc launches run on Bankr Launch v3 (an Arbitrum launch that doesn't name a provider may be served by v3 too while it rolls out there). To quote a pool in something other than WETH, read GET /token-launches/quote-tokens?chain=<chain> first and send the entry's address in the field it names — see Stock-paired launches.
- Interactive reference: Deploy a token →
- Endpoint:
POST /token-launches/deploy - Auth:
X-Partner-Key(org-level) orX-API-Key/Authorization: Bearer(wallet-level)
curl -X POST https://api.bankr.bot/token-launches/deploy \
-H "Content-Type: application/json" \
-H "X-Partner-Key: bk_ptr_YOUR_KEY" \
-d '{ "tokenName": "MyToken", "tokenSymbol": "MTK", "feeRecipient": { "type": "wallet", "value": "0x…" } }'
2. Check fees
Query claimable + claimed + historical fees for a Doppler or Clanker token or beneficiary (Bankr Launch v3: GET /launch-v3/:tokenAddress/fees?account=). Unauthenticated.
- Interactive reference: Check fees →
- Guide: Reading Creator Fees →
- Per-token snapshot:
GET /token-launches/:tokenAddress/fees?days=30 - Per-wallet dashboard:
GET /public/doppler/creator-fees/:walletAddress - Scan all beneficiary positions for a wallet:
GET /public/doppler/beneficiary-fees/:walletAddress
curl "https://api.bankr.bot/token-launches/0xTokenAddress/fees?days=30"
3. Claim
Collect your share of trading fees. One HTTP call — server auto-detects Doppler, Clanker or Bankr Launch v3, builds the calldata, signs via Privy, and broadcasts.
- Guide: Claiming Fees →
- Interactive reference: Claim token-launch fees →
- Endpoint:
POST /token-launches/:tokenAddress/fees/claim - Auth:
X-API-Key/Authorization: Bearer(user API key)
curl -X POST https://api.bankr.bot/token-launches/0xTokenAddress/fees/claim \
-H "Authorization: Bearer $BANKR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Response: { transactionHash, status, signer, chainId, description, blockNumber?, gasUsed? }.
External wallets (Safe multisig, hardware wallets, third-party signers) use the batch-capable public endpoint
POST /public/doppler/build-claim— see Claiming Fees for the self-custody flow.
Discover Recent Launches
List the 50 most recent Bankr token launches. Unauthenticated. Programmatic access to the data behind bankr.bot/launches.
- Interactive reference: List launches →
- Endpoint:
GET /token-launches
curl https://api.bankr.bot/token-launches
Next Steps
- Fee Redirecting — Route fees to collaborators or treasury
- Claiming Fees — How to collect your earnings
- Token Launching API (interactive) — Try lifecycle endpoints from your browser
- Partner API (interactive) — Partner-admin endpoints (provision wallets, API keys)