Overview
Brdy is a conversational launcher. You describe a token in plain English, Brdy turns that into a launch payload, routes it through Pons on Robinhood Chain, and hands you a card to sign. It runs in your browser — there is nothing to install.
- Parse — name, ticker, supply and socials are extracted from your message.
- Simulate — the launch is dry-run and shown to you before anything is signed.
- Deploy — you confirm, the transaction is broadcast, the address comes back in chat.
Get started
Nothing to install. Open the console, connect a wallet, and talk.
# 1 — connect brdygpt.com/app → wallet, or email via Privy # 2 — talk brdygpt.com/console → "launch a token called Blue Jay" # 3 — sign the launch card opens above the conversation
The same console also has a Trade mode for buying tokens already launched on Pons.
Connect a wallet
Click Connect wallet on the app page. Brdy connects through Privy — an existing wallet, or an email if you have none — and keeps only the address, never a key or a seed phrase.
Prompt syntax
There is no strict format — plain sentences work. These all parse the same way:
launch a token called Blue Jay, ticker BRDY, 1B supply new token Blue Jay (BRDY) with 1,000,000,000 supply, site brdygpt.com deploy BRDY — Blue Jay, 1b, x.com/brdy
Fields
| Field | Type | Notes |
|---|---|---|
name required | string | Display name of the token. |
ticker required | string | 2–10 characters, uppercased automatically. |
supply required | number | 1B, 1b and 1000000000 are equivalent. |
description | string | Stored in the token metadata. |
socials | object | { x, site, telegram } — parsed from any URL in the message. |
devBuy | number | Percent of supply bought at launch. Capped, see guardrails. |
If a required field is missing, Brdy asks one short question instead of showing a form.
Guardrails
- Dev buy capped at 5% of total supply — requests above the cap are clamped, and you are told.
- 15-minute unlock after deployment before the position can be moved.
- Simulation first — gas, metadata and supply are checked before broadcast.
- Explicit confirmation — one last message shows exactly what will be signed.
API reference
The extension and the site both talk to the same HTTP API. Base URL comes from your configuration (see the next section).
POST /v1/launch
POST {baseUrl}/v1/launch Authorization: Bearer <apiKey> Content-Type: application/json { "name": "Blue Jay", "ticker": "BRDY", "supply": 1000000000, "chain": "robinhood", "devBuy": 5, "socials": { "x": "x.com/brdy" } }
// 200 OK { "id": "lnch_8fa20c11", "state": "confirmed", "address": "0x94d9…7A2c", "unlock": "15m" }
GET /v1/launch/:id
Returns the current state of a launch: pending, simulated, confirmed or failed.
POST /v1/quote
Dry-run only. Returns the gas estimate, the applied dev-buy cap and the unlock delay, without broadcasting anything.
GET /v1/health
Liveness probe. Returns { "ok": true } when the backend is reachable.
Connect to ChatGPT
Brdy runs as a Custom GPT Action. ChatGPT talks straight to the Brdy API: it collects the token details in conversation, validates them, and hands back a signing link. No plugin store, no middleman.
1. Create the GPT
In ChatGPT, open Explore GPTs → Create → Configure → Create new action, then Import from URL and paste:
https://www.brdygpt.com/openapi.json
The four operations appear on their own: health, quoteLaunch, createLaunch, getLaunch.
2. Instructions
Paste this into the GPT's instructions. It is what makes Brdy ask for everything before touching the chain:
You are Brdy. You launch tokens on Robinhood Chain through the
pons v2 launchpad. You never hold keys and you never sign — the
user signs in their own console.
Collect from the user, one short question at a time:
- name display name, up to 64 characters
- symbol ticker, 2-10 characters, letters and digits
- description one or two lines, shown on the pons page
- logo an image URL or ipfs://… — ask, never invent one
- socials x, telegram, discord, website, farcaster
- creatorTax 0-10%, charged on every trade, paid to them
- devBuyEth optional ETH spent buying their own token
in the launch transaction
Never ask for the supply. It is fixed at 1,000,000,000 tokens
by the pons launch config.
Then call quoteLaunch. Read back its `missing` array and ask for
whatever is still absent. Show the user `totalCostEth` — the
0.0005 ETH launch fee plus any dev buy — and repeat any `notes`,
which say what Brdy adjusted and why.
Only once they confirm, call createLaunch and give them the
`signUrl` as a link. Their wallet is already connected there, so
one click deploys. Nothing is on-chain until they click.
Afterwards call getLaunch with the id to report the result: the
token address, the explorer link and the pons page.
3. Chain settings
Nothing about Pons is hardcoded in the client and nothing needs configuring to work: the defaults below were read off the deployed contracts, and the API re-reads the fee and the pinned terms on every call. Environment variables only override them.
| Value | Read from the chain |
|---|---|
| Chain | Robinhood Chain, id 4663 |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Explorer | robinhoodchain.blockscout.com |
| pons v2 factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e |
| Launch & buy router | 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948 |
| Launch fee | launchFee() — 0.0005 ETH today |
| Supply | Fixed by launch config 0 at 1,000,000,000 tokens |
| Max creator tax | maxCreatorTaxBps() — 10% |
| Permission | canLaunch(address), checked before offering to deploy |
Optional environment variables:
| Variable | Role |
|---|---|
PRIVY_APP_SECRET | Server-side Privy secret. Never reaches the browser. |
BRDY_DEV_BUY_MAX_ETH | Brdy's own cap on the dev buy. Defaults to 1 ETH. |
BRDY_API_KEY | When set, the API requires Authorization: Bearer. |
UPSTASH_REDIS_REST_URL | Persists launches. Without it they live in memory only. |
/v1/launch validates and stores the parameters, then returns a signUrl pointing at the user's console. The transaction is encoded and signed there, in their browser, by their own wallet. The server holds no private key and cannot deploy on anyone's behalf.Plug your backend
Everything goes through a single file: brdy-api.js. baseUrl is set to 'self', so the site calls the API served from this same domain. Point it at an absolute URL to use your own backend instead, or leave it empty and calls fall back to a simulated response.
/* brdy-api.js */ window.BRDY_CONFIG = { // >>> BACKEND <<< 'self' = l'API de ce domaine baseUrl: 'self', apiKey: '', endpoints: { health: '/v1/health', launch: '/v1/launch', status: '/v1/launch/:id', quote: '/v1/quote' }, chain: 'robinhood', timeout: 15000 };
Then call it from anywhere on the page:
BrdyAPI.launch({ name: 'Blue Jay', ticker: 'BRDY', supply: 1e9 }) .then(res => console.log(res.address)) .catch(err => console.error(err.code, err.message)); BrdyAPI.configured() // false seulement si baseUrl est vide BrdyAPI.health() BrdyAPI.quote(payload) BrdyAPI.status(id)
Access-Control-Allow-Origin for the site's domain and allow the Authorization header.Playground
Errors
| Code | Status | Meaning |
|---|---|---|
missing_field | 400 | A required field was not found in the payload. |
ticker_taken | 409 | That ticker already exists on the chain. |
dev_buy_capped | 422 | Requested dev buy above 5% — value was clamped. |
simulation_failed | 422 | Dry-run reverted; nothing was broadcast. |
unauthorized | 401 | Missing or invalid API key. |
rate_limited | 429 | Too many launches in a short window. |
FAQ
Does Brdy hold my keys?
No. It reads your address through the wallet provider and builds transactions; signing happens in your wallet.
Which chain?
Robinhood Chain, through Pons. The chain field is already in the payload so other networks can be added without changing the client.
Can I use the API without the extension?
Yes — the extension is a client. Anything that can POST JSON can drive the same endpoints.
What happens if the backend is down?
BrdyAPI rejects with the HTTP status and a code. With no baseUrl configured it answers with mock data instead, marked "mode": "mock".