based bid
OpenBidDeveloper tools

Build with OpenBid.

Token launches, LBP trading and fee collection for your app. Use the API, TypeScript SDK or agent tools.

Manage API keysKeys & usage

Base URL

All paths are relative to this origin, e.g. POST https://v2.based.bid/api/create-lbp. The older static / cdn.based.bid origins serve the previous version of the API.
EnvironmentOrigin
based.bid v2https://v2.based.bid

API keys & rate limits

Every request needs an API key, sent as X-API-Key: key or Authorization: Bearer key. Create one under Manage API keys. Board owners create their board key there too; it is the key for launches on that board.

No key: 401. Pending or rejected key, or the wrong board: 403. Over the limit: 429.
KeyRequests / secondRequests / day
User key11,000
Board key · Starter10No cap
Board key · Growth25No cap
Board key · Scale50No cap

Create a token

POST /api/create-flash

Builds an unsigned EVM transaction for launching a token straight to the DEX of your choice.

Attributes

Fields get sent through the data object.

chainId(number)required
  • 4663: Robinhood
  • 56: BNB Chain
  • 8453: Base
  • 5042: Arc
  • 1: Ethereum
creatorAddress(address)required
The launching wallet (pool owner and the hook's creator fee row). Or send header `X-Creator-Address`.
token(object)required
Token identity and metadata.
dex(object)required
Pool venue and LP fee.
sale(object)
Board, starting market cap and anti-whale limits.

Response

Send calls[] in order — each is a ready { to, data, value } (an ERC-20 quote approve when the allowance is short, then the launch). A Fee Builder launch whitelist comes back as followUp.whitelist: send that body to once the launch confirmed. The address stays leased to you until vanityLease.expiresAt — settle it with . dividenedFlash appears only for reward-token templates — the token deploys there when fees.v4.rewardsPct > 0.
{
  "ok": true,
  "functionName": "customFlashLaunchV4",
  "address": "0x…diamond",
  "args": [ … ],
  "value": "100000000000000000",
  "calldata": "0x…",
  "chain": { "id": 8453, "symbol": "base" },
  "warnings": [],
  "tokenOption": { "tradingStart": 0, "tradingEnd": 0 },
  "predictedTokenAddress": "0x…b1d…",
  "vanityLease": {
    "id": "api-preview:6f1c…",
    "chainId": 8453,
    "addresses": ["0x…b1d…"],
    "expiresAt": "2026-10-08T12:00:00.000Z"
  },
  "calls": [
    { "key": "launch", "to": "0x…diamond", "data": "0x…", "value": "100000000000000000" }
  ],
  "followUp": {
    "whitelist": {
      "method": "POST",
      "path": "/api/hook-whitelist",
      "body": { "data": { … } },
      "when": "after-launch-confirmed"
    }
  },
  "vanityMintAddresses": {
    "flash": "0x…b1d…",
    "dividenedFlash": "0x…b1d…"
  },
  "context": {
    "baseToken": "0x0000000000000000000000000000000000000000",
    "baseTokenDecimals": 18,
    "liquidityMarketCapPercent": 20,
    "isNativeRaise": true
  }
}