Message layout
Every buy post is built from {PLACEHOLDER} tokens. Twenty render text; eleven can also be a link target.
Text placeholders
| Token | What it shows | Empty 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
| Input | Output |
|---|---|
| Template line | {TOKENS} {TOKEN} vs {token} |
| Rendered | 1,000 NOT vs Notcoin |
URL-slot tokens
11 of the 20 placeholders can also be a run's own link target.
| Token | Links to | When 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.
- Header — your header text if set, else
<Name> Buy!, the name linked to the chart. - The emoji row (
{EMOJIS}). - Six rows, in this order: spent, tokens, price, marketCap, wallet, position. A row whose value is empty is skipped.
- 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
| Setting | Value |
|---|---|
| spent 💰 | {NATIVE} ({USD}) |
| tokens 🪙 | {TOKEN} |
| price 🏷 | Price: |
| marketCap 🔼 | Mkt Cap: |
| wallet 🔍 | {WALLET} |
| position ⬆️ | Position: |
Default tokens row, rendered
| Input | Output |
|---|---|
| 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.
- The body is split into lines.
- 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. - A blank line directly after a dropped line is dropped too.
Line-drop rule, rendered
| Input | Output |
|---|---|
| Template | Holders: {HOLDERS} Buy on {TOKEN}! |
| Rendered | Buy 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.
| Setting | Value |
|---|---|
| Emojis per $10 | Dashboard field: how many emojis a $10 buy shows. |
| Max emojis | Caps the row length. 1–80, default 50. |
Caption fitting
| Setting | Value |
|---|---|
| With media (photo, GIF or video attached) | 1024 characters |
| Text-only | 4096 characters |
A 50-emoji size row counts as 100. Lines that don't fit are dropped whole from the end.