Skip to main content

Token Launching

Partners can deploy tokens through two distinct flows: org-level deploys using your partner API key, and wallet-level deploys where provisioned wallets deploy on their own behalf. Both hit the same endpoint (POST /token-launches/deploy) but differ in authentication, signing, and fee routing.

For the full interactive endpoint reference (fields, validation, error codes), see Deploy a token →.

Base-only

Partner token launches are Base-only: both flows below default to Base, and a chain other than base is rejected with 400. So are provider: "bankr_v3", degenMode, and a paired quote token or stock (pairedTokenAddress / pairedStockAddress). Partner launches carry no creator vesting — the full supply goes into the pool, so disableVesting has no effect.


Two Deploy Flows​

Org-Level Deploys​

Your server calls the deploy endpoint with X-Partner-Key. The org's deployment wallet signs the transaction, and the partner fee split is applied automatically.

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": "My Token",
"tokenSymbol": "MTK",
"feeRecipient": {
"type": "wallet",
"value": "0x87be4dA49869fD055d5a60cAc2a6Dc61fdd3052D"
}
}'
  • Auth: X-Partner-Key
  • Signing wallet: Your org's deployment wallet
  • feeRecipient: Required — the org wallet signs, so you must specify where the creator's fee share goes
  • Fee split: Includes your partner share (from org's tokenLaunch config)

Wallet-Level Deploys​

A provisioned wallet with tokenLaunchApiEnabled calls the endpoint using its own X-API-Key. The wallet signs the transaction itself.

curl -X POST https://api.bankr.bot/token-launches/deploy \
-H "Content-Type: application/json" \
-H "X-API-Key: bk_usr_WALLET_KEY" \
-d '{
"tokenName": "User Token",
"tokenSymbol": "UTKN"
}'
  • Auth: X-API-Key (from a provisioned wallet)
  • Signing wallet: The provisioned wallet itself
  • feeRecipient: Optional — defaults to the wallet's own address
  • Fee split: Includes your partner share — the wallet's parent org is resolved automatically via provisioning, so the same fee config applies
  • Requires: tokenLaunchApiEnabled permission on the wallet's API key + tokenLaunchApi capability on the org
Partner Privileges

Validated org-level and provisioned-wallet launches are exempt from the retail launch-wallet requirements (a minimum wallet age and a minimum native ETH balance on the launch chain, both runtime switches). The exemption is revalidated at launch: the organization must be active with its token-launch capability and configuration enabled, and a provisioned wallet must remain active and linked to that organization.

The partner fee configuration still applies, gas sponsorship is available when the organization's sponsorship policy allows it, and partner-specific rate limits apply. The universal limit of 3 counted launch attempts per Bankr wallet per rolling 24 hours still applies.

Both partner flows are also exempt from the 2%-per-wallet balance cap that non-partner launches enforce for their first five minutes.

Comparison​

Org-Level (X-Partner-Key)Wallet-Level (X-API-Key)
Signing walletOrg deployment walletProvisioned wallet
feeRecipientRequiredOptional (defaults to wallet)
Partner fee shareYes — from org configYes — resolved from provisioning org
Who controls the deployYour serverThe provisioned wallet holder
Use caseYou deploy on behalf of usersUsers deploy their own tokens

Fee Recipient Resolution​

The feeRecipient field supports resolving addresses from multiple identifier types:

typevalue exampleResolution
wallet0x5f8D...E508Used directly
x0xdeployerResolves Twitter/X username to their Bankr wallet
farcasterdwr.ethResolves Farcaster username to their verified EVM address
ensvitalik.ethResolves ENS name to underlying address

Response​

Both flows return the same response shape:

Response 201​

{
"success": true,
"provider": "doppler",
"tokenAddress": "0x1234...abcd",
"poolId": "0xabcd...1234",
"txHash": "0x9876...fedc",
"chain": "base",
"feeDistribution": {
"creator": { "address": "0x87be...052D", "bps": 5700 },
"bankr": { "address": "0xBankr...", "bps": 1805 },
"partner": { "address": "0xYour...Fee", "bps": 1805 },
"alt": { "address": "0xAlt...", "bps": 190 },
"protocol": { "address": "0xAirlock...", "bps": 500 }
}
}

The feeDistribution object shows exactly how the 1.2% swap fee is split. Values are in basis points (10,000 = 100%). Your partner share appears under the partner key in both deploy flows — for wallet-level deploys, the partner org is resolved automatically from the wallet's provisioning relationship.


Fee Wallet Configuration​

Your fee wallet is the address that receives your partner share of trading fees from both deploy flows. It must be configured before either flow can deploy — until then a deploy fails with 400 "Partner token launch misconfigured".

Set or update your fee wallet from the Token Launch tab in your partner dashboard. The fee wallet must be a valid Ethereum address.

Retroactivity​

Changing the fee wallet only affects future launches. The beneficiary for each token is baked into the deploy transaction at launch time and stored on-chain in the Fees Manager contract. Updating the Token Launch tab setting later:

  • Applies to every token deployed after the change
  • Does not update beneficiaries on tokens already deployed
  • Does not redirect fees already accrued in existing pools

This is intentional — it means you can swap to a new fee wallet (e.g. moving from an EOA to a multisig) without worrying about inadvertently affecting launches already in the wild.

To redirect fees on an existing token, the current beneficiary must call updateBeneficiary(poolId, newBeneficiary) on the Fees Manager contract on-chain. See Transferring Fees to a New Wallet for the REST helper, Bankr-wallet flow, and a walkthrough of migrating a partner fee wallet to a multisig.


Fee Split Types​

Standard Split​

Most partners get a percentage of Bankr's portion of fees. The feeSplitPercentage field (0–100) determines what fraction of Bankr's share goes to you.

For example, with feeSplitPercentage: 50:

  • Creator: 57% (5,700 bps)
  • Partner: ~18% (1,805 bps) — half of Bankr's share
  • Bankr: ~18% (1,805 bps) — remaining half
  • Ecosystem (alt): 1.9% (190 bps)
  • Protocol: 5% (500 bps)

Custom Split​

Partners with custom arrangements have a customFeeSplitBps object with exact basis-point allocations for each beneficiary. This overrides the standard percentage calculation.

Both split types are visible in your organization's tokenLaunch config and in every deploy response's feeDistribution.


Claiming Fees​

Fees accumulate on-chain in the Uniswap V4 pool and must be claimed by the wallet holder. The Bankr CLI's claim-wallet command scans all launches where your wallet is a beneficiary and claims in bulk:

# Install the CLI
npm install -g @bankr/cli

# Set your partner wallet private key
echo "BANKR_PRIVATE_KEY=0xYourPartnerWalletKey" > .env

# Scan all launches and claim fees
bankr fees claim-wallet --all --yes

This works across all beneficiary roles (partner, creator, etc.). See Claiming Fees for the full guide including the interactive fee dashboard (bankr fees).


Simulate Before Deploying​

Test your integration without broadcasting a transaction by setting simulateOnly: true. Works with both deploy flows:

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": "Test Token",
"tokenSymbol": "TEST",
"feeRecipient": { "type": "wallet", "value": "0x..." },
"simulateOnly": true
}'

Returns the predicted tokenAddress and feeDistribution with status 200 instead of 201, and simulated: true. No transaction is broadcast, no gas is consumed, and no launch-quota slot is reserved. Retail simulations are capped at 20 per wallet per rolling 24 hours; validated partner deploy paths are exempt from that cap, as they are from the other retail gates.


Rate Limits​

ScopeLimit
Org-level deploys, per fee recipient1 deploy per minute, 1 in flight
Wallet-level deploys, per wallet API key1 deploy per minute, 1 in flight
Per fee recipient address, all accounts20 deploys per 24 hours
Per signing Bankr wallet3 counted launch attempts per rolling 24 hours
Wallet-level deploys, per client IPRoughly 10 successful deploys per 24 hours

Org-level limits are keyed by fee recipient, not by partner key, so each end-user address has its own allowance, and org-level deploys are exempt from the per-IP cap. Wallet-level deploys authenticate like any user API key, so every successful deploy your server makes for a provisioned wallet counts toward that server IP's cap. For the 3-attempt wallet quota, an org-level deploy uses the organization deployment wallet's quota, while each provisioned wallet has its own. All 3 attempts are eligible for gas sponsorship when otherwise allowed by the organization's sponsorship policy.

A wallet quota slot is handed back whenever the launch provably never reached the chain — validation, resolution, pricing and metadata pinning. Submit-stage failures release the slot only when Bankr can prove nothing was broadcast; a signer error or timeout that leaves that in doubt keeps the slot counted. The per-fee-recipient daily cap counts the same way. Simulations do not consume a slot.

See Deploy a token → for the interactive endpoint reference.


Launched Tokens Dashboard​

The Launched Tokens tab in your partner dashboard shows all tokens deployed under your organization. Use it to monitor token performance and track deployment activity.

Filtering by Source​

TabShows
AllEvery token launched under your organization
Org WalletTokens deployed via X-Partner-Key (org-level deploys)
Provisioned WalletsTokens deployed by provisioned wallets with tokenLaunchApiEnabled

Each token displays its name, address, market cap, 24h volume, price changes, transaction count, and deployment time. A badge indicates whether the token was launched from the org wallet or a provisioned wallet.

Sorting​

Click column headers to sort by market cap, volume, price change, transaction count, or deployment time. Results are paginated with infinite scroll.

API Access​

The dashboard reads this list with your signed-in session (any role), not the partner key:

GET /partner/:orgId/launched-tokens?scope=all&sortBy=marketCapUsd&order=desc&limit=50
ParamValuesDefaultDescription
scopeall, org, provisionedallFilter by launch source
sortBydeployedAt, marketCapUsd, vol24h, priceChange24h, txCount24h, lastTradeAt (also vol / priceChange over 1m, 5m, 1h, 6h)deployedAtSort column
orderasc, descdescSort direction
limit1–10050Results per page
cursorstring—Pagination cursor from previous response