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


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

Provisioned wallets automatically receive partner-deploy privileges: the 24-hour wallet age check is skipped, gas is sponsored, and partner rate limits apply instead of per-account limits. No extra configuration needed.

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,
"tokenAddress": "0x1234...abcd",
"poolId": "0xabcd...1234",
"txHash": "0x9876...fedc",
"activityId": "665f1a2b3c4d5e6f7a8b9c0d",
"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 org-level deploys. It must be configured before deploying tokens with X-Partner-Key.

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. No transaction is broadcast and no gas is consumed.


Rate Limits

ScopeLimit
Per fee recipient (burst)1 deploy per minute
Per fee recipient (daily)20 deploys per 24 hours
Per fee recipient (in-flight)1 concurrent deploy

Rate limits are applied per fee recipient address, not per partner key — each unique end-user address has its own quota. The 50/day (100 for Bankr Club) wallet cap that applies to direct X-API-Key deploys does not apply to partner-key deploys.

See Deploy a token → for the interactive endpoint reference.