Documentation · v1.0-beta

Launch tokens
[from chat]

Everything needed to run Brdy: install the extension, learn the prompt syntax, understand the guardrails, and call the launch API directly from your own backend.

// 001

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.
// 002

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.

// 003

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.

Signing stays with you. Brdy builds and simulates the transaction; your wallet is what signs and broadcasts it. Nothing is sent on-chain without your explicit confirmation.
// 004

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

FieldTypeNotes
name requiredstringDisplay name of the token.
ticker requiredstring2–10 characters, uppercased automatically.
supply requirednumber1B, 1b and 1000000000 are equivalent.
descriptionstringStored in the token metadata.
socialsobject{ x, site, telegram } — parsed from any URL in the message.
devBuynumberPercent of supply bought at launch. Capped, see guardrails.

If a required field is missing, Brdy asks one short question instead of showing a form.

// 005

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.
// 006

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.

// 007

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.

The live GPT. Brdy already runs as a Custom GPT: open it in ChatGPT ↗. The steps below are for building your own against the same API.

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.

ValueRead from the chain
ChainRobinhood Chain, id 4663
RPChttps://rpc.mainnet.chain.robinhood.com
Explorerrobinhoodchain.blockscout.com
pons v2 factory0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e
Launch & buy router0xe33E9E479dF8802cb0866d5d05258bEc4cF62948
Launch feelaunchFee() — 0.0005 ETH today
SupplyFixed by launch config 0 at 1,000,000,000 tokens
Max creator taxmaxCreatorTaxBps() — 10%
PermissioncanLaunch(address), checked before offering to deploy

Optional environment variables:

VariableRole
PRIVY_APP_SECRETServer-side Privy secret. Never reaches the browser.
BRDY_DEV_BUY_MAX_ETHBrdy's own cap on the dev buy. Defaults to 1 ETH.
BRDY_API_KEYWhen set, the API requires Authorization: Bearer.
UPSTASH_REDIS_REST_URLPersists launches. Without it they live in memory only.
Non-custodial by design. /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.
// 008

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)
CORS. The browser calls the API directly, so the backend must return Access-Control-Allow-Origin for the site's domain and allow the Authorization header.
// 009

Playground

checking backend…
// response appears here
// 010

Errors

CodeStatusMeaning
missing_field400A required field was not found in the payload.
ticker_taken409That ticker already exists on the chain.
dev_buy_capped422Requested dev buy above 5% — value was clamped.
simulation_failed422Dry-run reverted; nothing was broadcast.
unauthorized401Missing or invalid API key.
rate_limited429Too many launches in a short window.
// 011

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

© Brdy 2026 — launch by chatting Support · Terms · Privacy · support@brdygpt.com