Buy Bot

Message layout

Every buy post is built from `{PLACEHOLDER}` tokens. Twenty render text; eleven can also be a link target.

Every buy post is built from {PLACEHOLDER} tokens. Twenty render text; eleven can also be a link target.

Text placeholders

TokenWhat it showsEmpty when
{AMOUNT}Native amount spent.Never
{NATIVE}Native token symbol of the chain.Never
{USD}Buy amount in USD, 2 decimals.Never
{TOKENS}Tokens received.Never
{TOKEN}Token symbol.Never
{token}Token name — the long name.Never
{PRICE}USD price per token ($? when unknown).Never
{MCAP}Market cap in USD.Never
{WALLET}Buyer wallet, shortened to first 6 + last 4 characters, linked to the explorer.The buy has no wallet address
{POSITION}New!, or a + percentage change.The buyer's previous balance couldn't be read
{EMOJIS}The size row — see Size-emoji scaling.Never
{TX}The word Tx, linked to the transaction.The chain has no transaction explorer
{CHART}The chart label, linked to the chart.No chart resolves
{CA}The contract address.Never for a set-up bot
{DEX}The DEX name.The market has no DEX name
{HOLDS}The buyer's token balance after this buy.The buyer's previous balance couldn't be read
{LIQ}Liquidity in USD.0
{VOL24}24-hour volume in USD.0
{BUYS24}24-hour buy count.0
{HOLDERS}Holder count.Unknown or 0

Note

{AMOUNT}, {TOKENS} and {HOLDS} show 0 decimals from 1,000 up, 2 decimals from 1 to 1,000, and 4 decimals below 1, trailing zeros stripped.

Case matters: {token} vs {TOKEN}

Note

{TOKEN} (uppercase) renders the token's symbol. {token} (lowercase) renders the token's name. Every other placeholder is uppercase-only.

Case rule, rendered

InputOutput
Template line{TOKENS} {TOKEN} vs {token}
Rendered1,000 NOT vs Notcoin

URL-slot tokens

11 of the 20 placeholders can also be a run's own link target.

TokenLinks toWhen unset
{TX}The transaction on the chain's explorer.Empty — no link, no text.
{CHART}The chart for the chosen chart provider.Empty.
{WALLET}The buyer's wallet on the chain's explorer.Text still shows, unlinked.
{WEBSITE}The Website link.Plain text, no link.
{TWITTER}The X link (/buybotx, /buybottwitter). Where the bot labels this link itself, the label is X, not "Twitter".Plain text, no link.
{TELEGRAM}The Telegram link.Plain text, no link.
{DISCORD}The Discord link.Plain text, no link.
{DOCS}The Docs link.Plain text, no link.
{MEDIUM}The Medium link.Plain text, no link.
{REDDIT}The Reddit link.Plain text, no link.
{GITHUB}The GitHub link.Plain text, no link.

The default layout (no custom body)

With no custom body, the bot uses a fixed layout: a header, the emoji row, six rows in a fixed order, then a line of links.

  1. Header — your header text if set, else <Name> Buy!, the name linked to the chart.
  2. The emoji row ({EMOJIS}).
  3. Six rows, in this order: spent, tokens, price, marketCap, wallet, position. A row whose value is empty is skipped.
  4. A line of links joined with |: Tx, Chart, your extra links (max 4), then whichever project links are set.

Default row templates, each with its default icon

SettingValue
spent 💰 {NATIVE} ({USD})
tokens 🪙 {TOKEN}
price 🏷Price:
marketCap 🔼Mkt Cap:
wallet 🔍{WALLET}
position ⬆️Position:

Default tokens row, rendered

InputOutput
Template (tokens row, default icon)🪙 {TOKENS} {TOKEN}
Rendered🪙 1,000 NOT

On Telegram “1,000 NOT” renders bold.

The line-drop rule

Applies only to a custom body. The default layout is never subject to it.

  1. The body is split into lines.
  2. A line is dropped when every placeholder on it renders empty and the line has no link. {TOKEN}, {token}, {NATIVE} and {EMOJIS} never count — they are always filled.
  3. A blank line directly after a dropped line is dropped too.

Line-drop rule, rendered

InputOutput
TemplateHolders: {HOLDERS} Buy on {TOKEN}!
RenderedBuy on NOT!

{HOLDERS} has no value on this market, so the whole first line — including its literal Holders: text — is dropped. {TOKEN} never counts, so the second line stays.

Size-emoji scaling

The size emoji repeats once per set number of dollars of the buy, rounded up: at least 1, at most the max. If no emoji is set, 🟢 is used.

SettingValue
Emojis per $10Dashboard field: how many emojis a $10 buy shows.
Max emojisCaps the row length. 1–80, default 50.

Caption fitting

SettingValue
With media (photo, GIF or video attached)1024 characters
Text-only4096 characters

A 50-emoji size row counts as 100. Lines that don't fit are dropped whole from the end.