Bankr Plugin
[!IMPORTANT] Complete the short Base MCP onboarding flow defined inBankr is a launch and discovery surface for tokens on Base. The public API exposes the latest deployed token launches (name, symbol, contract address, deployer, links). This plugin uses that feed to surface fresh launches to the user, then buys the selected token through Base MCP’sSKILL.mdbefore calling any Bankr flow. This plugin reads from the Bankr public API and then routes the actual purchase through Base MCP’sswaptool — there is no separate Bankr MCP server.
swap tool — Bankr is only the discovery layer; the swap is a regular Base MCP swap call paying ETH (or USDC) for the target ERC-20.
No additional MCP server is required.
Prerequisite: api.bankr.bot must be on the Base MCP web_request allowlist. If requests are rejected, inform the user and fall back to the harness’s HTTP/fetch tool if one is available.
Chain: Base mainnet (chainId 8453 / 0x2105)
API
Base URL:https://api.bankr.bot
GET /token-launches
Returns the most recent token launches on Base, newest first. No auth required, no query parameters.
tokenAddress— the ERC-20 contract on Base. Pass this verbatim toswapastoAsset.status— always"deployed"in the current feed; treat anything else as a non-tradable preview and skip.chain— always"base"in the current feed; skip anything else.launchType— currently"doppler"(Doppler v3/v4 pools). Other values may appear later; the swap path is the same as long as the token has a tradeable pool.timestamp— milliseconds since epoch (note: more than 13 digits in the sample because the API uses a high-precision counter; treat as monotonically decreasing in array order).deployer.xUsername,tweetUrl,websiteUrl— optional context to surface to the user before they buy.
GET /token-launches/{tokenAddress}
Returns a single launch’s metadata by token contract address. The address is case-insensitive (the API lowercases it on the response). No auth required.
Example
imageUri— IPFS URI for the token’s image/logo (only returned by the single-launch endpoint, not the list endpoint).
Orchestration
<symbol>” confirmation from the user before calling swap — the launches feed contains low-liquidity and meme tokens, and the swap is irreversible.
Discovery call
Presenting launches to the user
Surface enough context that the user can judge whether to buy — at minimum: symbol, name, deployer handle (if any), website/tweet link, and how recent the launch is. Do not echo the full IPFS metadata or all 50 entries; that’s noise. Example summary line per launch:Swap call
The actual purchase is a regular Base MCPswap call. Read the swap tool’s own parameter descriptions from the MCP — they are the source of truth. Typical shape:
fromAsset: use a supported symbol likeETHorUSDC, or a contract address when needed.toAsset: use the launch token contract address.amount: human-readable decimal amount offromAsset. For 0.001 ETH pass"0.001"; for 5 USDC pass"5".
swap tool returns an approvalUrl and requestId like any other write call. Surface the URL to the user neutrally (“Approve Swap”), then poll get_request_status once they’ve acted. The full approval/polling pattern is in ../references/approval-mode.md.
Example Prompts
Show me the latest token launches on Baseweb_requestGEThttps://api.bankr.bot/token-launches.- Filter to
status="deployed"andchain="base"; take the top 10. - Show symbol, name, deployer handle, website/tweet, and contract address.
- Do not auto-buy. Ask the user which one (and how much) they want.
web_requestGEThttps://api.bankr.bot/token-launches.- Take
launches[0](or the first one matchingstatus="deployed"). - Show: symbol, name, address, deployer. Ask the user to confirm — “Buy 0.001 ETH of
<SYMBOL>(<address>)?”. - On confirmation:
swapwithfromAsset=ETH,toAsset=<launch.tokenAddress>,amount="0.001",chain="base". - Open the approval URL; poll
get_request_statusonce the user has approved.
web_requestGEThttps://api.bankr.bot/token-launches.- Find the entry with
tokenSymbol="WHOP"; if multiple, prefer the most recent and confirm the contract address with the user. swapwithfromAsset=USDC,toAsset=<launch.tokenAddress>,amount="5",chain="base".- Open the approval URL; poll.
web_requestGEThttps://api.bankr.bot/token-launches.- Filter by
deployer.xUsername === "0xtinylabs"andtimestampwithin the last hour (use the array’s relative ordering — the feed is newest first). - List matches with symbol, name, address, tweet/website.
web_requestGEThttps://api.bankr.bot/token-launches/0x32F66Ec2Ffb26d262058965cf294F951e47F8ba3.- If 200: summarize
tokenName,tokenSymbol, deployer handle, tweet/website, and launch age fromtimestamp. - If 404: tell the user the address isn’t in Bankr’s launches index; offer to swap anyway via the regular
swapflow with extra confirmation.
web_requestGEThttps://api.bankr.bot/token-launches/0x32F66Ec2Ffb26d262058965cf294F951e47F8ba3to confirm symbol/name/deployer.- Show those details and ask the user to confirm — “Buy 0.001 ETH of
<SYMBOL>(<address>)?”. - On confirmation:
swapwithfromAsset=ETH,toAsset=<address>,amount="0.001",chain="base". - Open the approval URL; poll.
Execution Warnings
New launches commonly have thin liquidity and volatile prices. Base MCP’s coreswap tool does not expose a slippage parameter, so do not invent one. Warn the user that fresh-launch swaps may revert or fill at a materially worse price, then require explicit confirmation of the token address and amount before calling swap.
Safety Notes
- Symbol collisions. Multiple launches can share the same symbol (the sample feed contains three
simstudioailaunches with different symbols and addresses). Always disambiguate bytokenAddressand confirm with the user before swapping. - No endorsement. The Bankr feed is unfiltered. The Base MCP and this plugin do not vet, endorse, or audit listed tokens — many are low-liquidity, short-lived, or meme tokens. Mention this once before the first buy of a session.
- Adversarial metadata. Token names, symbols, deployer handles, and website URLs are user-supplied and can be misleading or impersonate legitimate projects. Don’t follow links from the feed; surface them to the user for context only.
- Address case. Pass
tokenAddresstoswapverbatim — lowercased addresses from the API work fine; do not re-checksum or modify them. - Buy size. Do not propose a default buy amount. The user must specify the amount.
Notes
- Native ETH address:
0x0000000000000000000000000000000000000000 - USDC on Base:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - WETH on Base:
0x4200000000000000000000000000000000000006 - Swap amounts are human-readable decimals for
fromAsset. If you ever use a contract address asfromAsset, include that token’sfromDecimals. - Always use
chain: "base"(string) withswap, not the numeric chainId. - The feed updates frequently (new launches every few minutes during peak hours). If the user asks “what’s brand new”, fetch again rather than reusing an earlier response.