Skip to main content

Partner Deploy API

Deploy tokens on behalf of your users via a single REST endpoint. Partners authenticate with an X-Partner-Key header and receive a share of on-chain trading fees automatically. Fees accumulate and must be claimed by fee recipient wallet.

Authentication

Include your partner key on every request:

X-Partner-Key: bk_YOUR_PARTNER_KEY

No other authentication is required. Your partner key must be provisioned with a deployment wallet — contact the Bankr team to get set up.

Deploy a Token

POST /token-launches/deploy

Request Body

{
"tokenName": "My Token",
"tokenSymbol": "MTK",
"description": "A token launched via the Bankr API",
"image": "https://example.com/token-logo.png",
"tweetUrl": "https://x.com/user/status/123456",
"websiteUrl": "https://mytoken.xyz",
"feeRecipient": {
"type": "wallet",
"value": "0x87be4dA49869fD055d5a60cAc2a6Dc61fdd3052D"
},
"simulateOnly": false
}

Fields

FieldTypeRequiredDescription
tokenNamestringYesToken name, 1-100 characters
tokenSymbolstringNoTicker symbol, 1-10 characters. Defaults to first 4 characters of tokenName
descriptionstringNoShort description, max 500 characters. Stored in on-chain metadata
imagestringNoURL to a token logo image. Uploaded to IPFS as part of token metadata
tweetUrlstringNoURL to a tweet about the token. Stored in on-chain metadata
websiteUrlstringNoToken website URL. Stored in on-chain metadata
feeRecipientobjectYesWho receives the creator's share of trading fees. See below
simulateOnlybooleanNoWhen true, returns the predicted token address without broadcasting. Default: false

Fee Recipient

The feeRecipient field specifies who receives the creator reward from trading fees. It supports resolving addresses from multiple identifier types:

typevalue exampleDescription
wallet0x5f8DA8F88eC81e27f2E22fCB9CA5D926c595E508A raw EVM address
x0xdeployerTwitter/X username — resolves to their Bankr wallet
farcasterdwr.ethFarcaster username — resolves to their verified EVM address
ensvitalik.ethENS name — resolves to the underlying address
Required for partner deploys

feeRecipient is required when deploying via partner key. The partner wallet signs the transaction, so the API needs to know where the creator's fee share should go.


Response

Status: 201 Created (or 200 OK when simulateOnly: true)

{
"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 },
"ecosystem": { "address": "0xAlt...", "bps": 190 },
"protocol": { "address": "0xAirlock...", "bps": 500 }
}
}

Response Fields

FieldTypeDescription
successbooleanAlways true on success
tokenAddressstringDeployed token contract address on Base
poolIdstringUniswap v4 pool ID for the token's bonding curve
txHashstringTransaction hash. Absent when simulateOnly: true
activityIdstringInternal activity record ID
chainstringAlways base
simulatedbooleanPresent and true when simulateOnly was used
feeDistributionobjectOn-chain fee beneficiary breakdown

Fee Distribution

The feeDistribution object shows how the 1.2% swap fee is split among beneficiaries. Values are in basis points (10,000 = 100%).

RoleDescription
creatorThe feeRecipient address — receives the creator's share (57%)
bankrBankr platform fee
partnerYour partner fee share, split from Bankr's portion based on your configured percentage
ecosystemBankr ecosystem fund
protocolDoppler protocol fee (5%)

Errors

StatusErrorCause
400Validation errorInvalid or missing required fields
400Fee recipient resolution failedCould not resolve feeRecipient to an address
400feeRecipient is requiredMissing feeRecipient with partner key auth
401Invalid partner keyKey not found or inactive
403Partner key not configured for deploymentKey was not provisioned with a wallet
403Write operations require a read-write API keyKey is read-only
429Rate limit exceededMore than 50 deploys in 24 hours (100 for Bankr Club)

Examples

Simulate a deploy

Test your integration without broadcasting a transaction:

curl -X POST https://api.bankr.bot/token-launches/deploy \
-H "Content-Type: application/json" \
-H "X-Partner-Key: bk_YOUR_KEY" \
-d '{
"tokenName": "Test Token",
"tokenSymbol": "TEST",
"feeRecipient": {
"type": "wallet",
"value": "0x87be4dA49869fD055d5a60cAc2a6Dc61fdd3052D"
},
"simulateOnly": true
}'

Live deploy with metadata

curl -X POST https://api.bankr.bot/token-launches/deploy \
-H "Content-Type: application/json" \
-H "X-Partner-Key: bk_YOUR_KEY" \
-d '{
"tokenName": "My Token",
"tokenSymbol": "MTK",
"description": "Launched via partner integration",
"image": "https://example.com/logo.png",
"websiteUrl": "https://mytoken.xyz",
"feeRecipient": {
"type": "wallet",
"value": "0x87be4dA49869fD055d5a60cAc2a6Dc61fdd3052D"
}
}'

Claiming Your Partner Fees

Your partner wallet accumulates a share of trading fees from every token deployed through your integration. Fees accrue on-chain and must be claimed by the wallet holder.

The easiest way to claim is with the Bankr CLI's claim-wallet command, which 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 and claim all fees
bankr fees claim-wallet --all --yes

This works for any beneficiary role (partner, creator, etc.) and handles all the on-chain resolution automatically. See Claiming Fees for more details.


Route fees to a Twitter user

curl -X POST https://api.bankr.bot/token-launches/deploy \
-H "Content-Type: application/json" \
-H "X-Partner-Key: bk_YOUR_KEY" \
-d '{
"tokenName": "Community Token",
"feeRecipient": {
"type": "x",
"value": "0xdeployer"
}
}'