Roles give a coin's AI tools, not just chat. A role is a job: helping holders trade, answering with real on-chain data, setting alerts, building the coin's website, talking in its Telegram group or posting on its X account. Every model call a role makes is paid from the coin's own AI vault and gets a receipt.
The AI can never move anyone's money with a role. Trades are prepared as unsigned transactions that you sign in your own wallet, and no role sends funds anywhere.
The six roles#
| Role | Used by | Tools / what it does |
|---|---|---|
| Trading copilot | Holders | quote_trade, build_trade |
| On-chain analyst | Holders | coin_stats, recent_trades, top_holders, holder_growth, my_position |
| Alerts concierge | Holders | create_alert |
| Website builder | Creator only | build_site, update_site, served at /c/<mint> |
| Telegram group bot | Verified holders in the group | Answers in the coin’s linked Telegram group |
| X manager | Creator (sets it up) | Posts on the coin’s connected X account |
New AI coins start with On-chain analyst and Trading copilot selected on the Launch page; you can pick others there. Coins launched before roles existed have none until the creator turns some on.
Turn roles on or off#
- At launch, in “What can your AI do?” on the Launch page.
- Later, in the Roles tab of the AI settings panel on the coin page, or on the coin's AI roles page at
/c/<mint>/manage. Saving asks the creator wallet to sign a message (free, one use). - A role's tools exist only while the role is on. Creator-only tools are never offered to holders.
Trading copilot#
quote_tradeshows a price quote for buying or selling this coin only: what you pay, what you get, the minimum you get, the platform fee and the price impact. No transaction.build_tradeprepares the same trade as an unsigned transaction for the signed-in holder. The chat shows it with a summary; nothing happens until you sign it in your own wallet. The server never signs.- Buys are sized in SOL. Sells are sized in coins or in a percent of your balance (up to 100%).
- Trade cap: at most 5 SOL per trade (the platform can change it with
AI_TRADE_MAX_SOL, up to 1,000). A sell is built only if the SOL you would receive is under the cap. Bigger trades go through the normal trade panel. - Slippage 0.1% to 20%, 1% by default.
- A trade that needs two transactions (some token-paired coins) gets a link to the trade panel instead.
On-chain analyst#
The AI answers with data from these tools instead of guessing:
| Tool | What it returns |
|---|---|
coin_stats | Price, market cap, curve progress, trade count and volume. |
recent_trades | The latest trades: side, size and time. |
top_holders | Top holders by rank and share of supply, never addresses. |
holder_growth | Distinct and new traders over 24 hours and 7 days. |
my_position | Your own balance, share of supply, value, trades on this site, average entry and change since then. |
Note
top_holders reads the platform's holder snapshots. Snapshots are taken only for coins that share fees with holders, which the fixed AI coin split does not, so on most AI coins this tool reports that there is no data yet.Alerts concierge#
Ask the AI to tell you when something happens. Each alert fires once and is then deleted.
| Type | Fires when | Allowed value |
|---|---|---|
| holders | The holder count reaches the value | Whole number, 1 to 10,000,000 |
| mcap | The market cap reaches the value (in SOL, or the coin’s quote token) | Above 0, up to 100,000,000 |
| whale | One trade of at least the value (SOL or quote token) happens after you set it | 0.1 to 100,000 |
| price_move | The price moves that many percent from the price when you set it (negative = drop) | −95% to +10,000%, at least 1% either way |
- Checked about every 60 seconds. At most 10 alerts per coin and 50 in total per wallet. Unfired alerts expire after 30 days (
AI_ALERT_TTL_DAYS). - Delivery: Web Push on devices where you turned on AI alert notifications, and a Telegram message to every Telegram account that verified your wallet with the bot (up to 5).
- Holder-count alerts use the same holder snapshots as
top_holders, so on coins without snapshots they do not fire.
Website builder#
The creator describes a one-page site and the AI writes it. The page is published at /c/<mint>; until a page exists, that link opens the coin page. The coin page shows a “Coin website” link once it is published.
Ask
In the chat, the creator asks the AI to build or change the site (build_site/update_site, a brief of up to 1,500 characters); the new page is published right away. Or use the editor on/c/<mint>/manage: “generate” returns a preview without publishing, and publishing needs a creator signature.Cleaned
The page is rebuilt from an allowlist: no scripts, forms, iframes, SVG, event handlers or external CSS; links only to the coin page, x.com / twitter.com, t.me and the creator's own links; images only from allowed hosts; no wallet addresses except the coin's own mint. It is cleaned again every time it is served.Served safely
The page is served under a strict Content Security Policy that blocks all scripts, with a platform header (coin name and contract address) and footer (version, content hash, date, “not financial advice”).
A generated page is one paid request (up to 8,000 output tokens), recorded as a tool call.
Telegram group bot#
Link the group
Add the platform's bot to your group. A group admin sends/link <mint>. The bot posts a one-time code (valid 15 minutes, works once), if the coin has the Telegram group role on. The creator pastes it on/c/<mint>/manageand signs with the creator wallet.Holders verify once
A holder sends/verifyin the group and opens the private chat the bot links to. There the bot sends a link to/c/<mint>/verify(valid 15 minutes, works once) that names the holder's Telegram account (@username, or first name). The holder signs a message naming that account with their wallet (free, moves no funds); the page then shows a one-time code, and the link only counts once the holder sends/confirm <code>to the bot from that Telegram account. One Telegram account is linked to one wallet; verifying again replaces it.The AI answers
The bot replies when someone mentions it or replies to it, only for verified wallets, under the same bag tiers, quotas and budget as the chat (up to 400 output tokens). The AI is told to answer in at most 3 short sentences without financial advice, and links and addresses are removed from what it posts.
- Limits: 20 replies per minute per group, 1 per 10 seconds and 30 per hour per user.
- Unverified or refused users get one short notice at most every 10 minutes, so the bot does not spam the group.
- A group admin can send
/unlink, or the creator can unlink with a signature.
X manager#
- The creator connects the coin's X account on
/c/<mint>/manage(signed start, then X's own OAuth 2.0 screen with PKCE; permissions to read, post and stay connected). Tokens are stored encrypted. Disconnecting deletes them and also tries to revoke them at X. - A background job (about every 5 minutes) writes at most one post per coin per run, in character, up to 280 characters.
- Limits: posts per UTC day (default 3, range 0 to 24) and minutes between posts (default 120, range 30 to 1,440), both in the coin's rules. Posts are also spread over the day: the gap is at least 75% of 24 hours ÷ posts per day, so with the defaults it is 6 hours.
- A post with a link, a domain, an address or anything that looks like financial advice or a giveaway is dropped, not posted. A dropped post still uses its slot.
What roles are not#
Content skills (posts, lore, ASCII art) are separate from roles. AI-proposed money moves are separate too and off by default: see On-chain actions.
For operators#
| Setting | Default | Used for |
|---|---|---|
TELEGRAM_BOT_TOKEN | none | The bot (shared with the alerts bot). |
TELEGRAM_WEBHOOK_SECRET | none | Required: the webhook refuses updates without it. |
TELEGRAM_BOT_USERNAME | read with getMe | Bot username for mentions and deep links. |
X_CLIENT_ID | none | X OAuth app. Without it X connect and posting are off. |
X_CLIENT_SECRET | none | For confidential X apps (Basic auth); public apps leave it empty. |
X_REDIRECT_URI | <site>/api/ai/connect/x/callback | The one callback URL to register at X. |
AI_TRADE_MAX_SOL | 5 | Trading copilot cap per trade. |
AI_ALERT_TTL_DAYS | 30 | Lifetime of an unfired AI alert. |
AI_SITE_IMAGE_HOSTS | none | Extra image hosts allowed on AI-built sites. |
LAUNCH_SECRET | required | Signs Telegram link codes, verify links and the X OAuth state. |
MIND_TREASURY_SECRET | required | Encrypts the stored X tokens. |
AI_X_POSTS_PER_DAY and AI_X_MIN_SPACING_MIN are only used when a coin's rules lack those fields. The default rules always set them, so in practice the per-coin rules decide.