For token issuers
Make your token tippable on X.
Issue some of your supply on Xahau and your holders can send it in a reply. Add a TipBot shortcut and they don't even need your issuer address.
- Free
- No sign-up
- One pull request
PlaygroundInteractive
Paste or type a sample post to see exactly what @xahtipbot would do with it. It's checked with the same rules the bot uses: one tester for tipping, one for moving a balance to your withdrawable balance.
Tip someone
On X, a reply's “Replying to @…” handles are hidden and don't count. If your post is a reply, put who you're replying to above and type only what you'd write yourself.
Waiting for input
Type a sample post above to check it.
No issuer needed for: EUR (Euro (Gatehub)), EVR (Evernode), USD (USD (Gatehub)), XRP (XRP). Every other token needs its issuer: CODE:rIssuerAddress.
Move to withdrawable balance
Waiting for input
Type a sample post above to check it.
Note: This checks the command the same way the bot does, including a real checksum check on every Xahau address. It doesn't check that an @handle is a real X account, that you have the balance, or that an issuer has really issued that token. Retweets never count, and editing a post can't make it tip twice. Moving funds to your withdrawable balance isn't cashing out: withdrawing to your Xaman wallet happens on the dashboard.
Quick start
Tip someone
Reply to their post with:
@xahtipbot +5
This sends 5 XAH to the person whose post you're replying to.
Tip another currency
@xahtipbot +5 USD:rIssuerAddress
Anything other than XAH needs the issuer after a colon, except official shortcuts like EUR (Euro (Gatehub)), EVR (Evernode), USD (USD (Gatehub)) and XRP (XRP): +5 EUR works on its own.
Move to withdrawable balance
@xahtipbot withdraw 10 XAH to rYourAddress
Credits a Xahau address inside tipbot. Actually cashing out to your wallet is a separate step, on the dashboard.
Not replying? Name the person right next to the command: @alice @xahtipbot +5. You can tip several people in one post. @xrptipbot works too.
Quick reference
| What you want | What you post |
|---|---|
| Tip someone 5 XAH | reply to them with @xahtipbot +5 |
| Tip 5 XAH without replying | @alice @xahtipbot +5 |
| Tip an issued currency | @alice @xahtipbot +5 USD:rIssuerAddress |
| Tip a shortcut token (no issuer needed) | @alice @xahtipbot +5 EUR |
| Tip several people in one post | @alice +1 @xahtipbot @bob +2 @xahtipbot |
| Move XAH to your withdrawable balance | @xahtipbot withdraw 10 XAH to rYourAddress |
| Move an issued currency to your withdrawable balance | @xahtipbot withdraw 10 USD:rIssuer to rYourAddress |
@xrptipbot and @xahtipbot both work, everywhere, interchangeably.
How it works
Independent oracle nodes watch X for posts that mention the bot. Each turns a valid command into a vote and submits it to the TipBot hook on the Xahau ledger, which moves the balances once the oracles agree.
Your balance is held against your X account, not against a wallet. You don't need a Xahau address to send or receive tips. You only need one when you want to withdraw.
Balances are tracked against your numeric X account ID rather than your handle, so changing your @name doesn't strand your funds.
Sending a tip
By reply
This is the normal way to tip. Reply to someone's post and write:
@xahtipbot +5
The tip goes to the author of the post you're replying to. The “Replying to @…” handles X adds to a reply are hidden and never count, so you don't need to type anyone's handle.
As a standalone post
You can write the whole command yourself, without replying to anything:
@alice @xahtipbot +5
This is how you tip someone who isn't the author of the post you're replying to, or tip without replying at all. The handle can go on either side of the command: @alice +5 @xahtipbot works too.
Who gets the tip
The amount always carries a leading +, and the bot picks the recipient in this order:
- A handle right next to the command, before it (
@alice @xahtipbot +5) or between the amount and the bot (@alice +5 @xahtipbot). - Otherwise, on a reply, the author of the post you're replying to. If you typed a different handle before the command, the tip is rejected as ambiguous rather than guessed.
- Otherwise, the first handle you typed:
Thanks @alice! +5 @xahtipbot.
You can wrap the command in a sentence. Just keep your words away from the spot right after the amount, which is read as the currency:
thanks for writing this up @alice @xahtipbot +2.5
Tipping several people at once
Give each tip its own handle, amount and bot mention, and they're paid as separate tips:
@alice +1 @xahtipbot @bob +2 @xahtipbot
Up to 16 tips per post. If one of them can't be paid (a bad currency, say), it's skipped and the others still go through. Several amounts that don't each name a recipient aren't a multitip: only one of them is read.
Replying inside a group thread
The hidden “Replying to” handles never count, so in a busy thread @xahtipbot +1 still tips the author of the post you're replying to. To tip someone else in the thread, type their handle right before the bot: @carol @xahtipbot +1.
Currencies
Tips default to XAH. These are identical:
@alice @xahtipbot +5 @alice @xahtipbot +5 XAH
For anything else, name the currency and its issuer, separated by a colon, directly after the amount:
@alice @xahtipbot +5 USD:rIssuerAddressHere
- The currency is a code of 3 to 20 letters and digits starting with a letter (
USD,RLUSD), or a 40-character hex currency code. Capitals don't matter, and a$in front is fine:$USD:rIssuer. - An issuer is required for every currency except XAH and the official shortcuts.
+5 FOOon its own is rejected, never quietly sent as XAH: the bot has no way to know whose FOO you mean. - Official shortcuts need no issuer:
EUR(Euro (Gatehub)),EVR(Evernode),USD(USD (Gatehub)) andXRP(XRP).+5 EURuses the official issuer, and writingEUR:rOtherIssuerstill uses the issuer you typed. The list is kept in the TipBot-Shortcuts repository, which every oracle follows. Issuing a token? Here's how to get yours listed. - Only the word right after the amount is the currency. A normal word there is read as an attempt at a currency code, so
+1 thanksis rejected, and+5 thanks EVRis too: the currency there is “thanks”, not EVR. Emoji and punctuation there are fine:+5 🙏sends XAH. - XAH must not have an issuer.
+5 XAH:rSomethingis rejected.
Moving funds to your withdrawable balance
This command is easy to misread as the actual cash-out step. It isn't. Posting it moves your tipbot balance into a balance held against a specific Xahau address, still inside tipbot. Nothing leaves tipbot until you withdraw it from the site itself, using Xaman.
@xahtipbot withdraw 10 XAH to rYourXahauAddress
For an issued currency:
@xahtipbot withdraw 10 USD:rIssuerAddress to rYourXahauAddress
- Unlike tips, the currency is not optional here. Always state it (
XAH, a shortcut likeEUR, orCODE:rIssuer). The amount has no+and uses a dot for decimals, like0.5. - Destination addresses are checksum-validated, so a mistyped address is rejected outright rather than sent into the void. Copy and paste it anyway.
- This command doesn't need to be a reply. Post it anywhere.
- The address must be a Xahau address. An address from another network that happens to look similar is not the same thing.
- Most people target their own address, to make their balance withdrawable. Nothing stops you from targeting someone else's, which simply credits them instead.
For the full walkthrough of turning that balance into funds in your Xaman wallet, see How to withdraw.
Amounts
- Plain numbers:
+5,+0.25,+1000.+.5and+ 5work too. - A comma works as a decimal point (
+0,5), but not when it could be a thousands separator:+1,000is rejected as ambiguous. Write+1000. - The number has to stand on its own: no negatives, no scientific notation (
+1e3), and nothing stuck to it (+5XAH,+10%). Put a space before the currency. - Zero is not a tip. Anything that works out to zero is dropped.
- XAH (the native token) goes to 6 decimal places at most, e.g.
0.000001. It's counted in drops, and 1 XAH is 1,000,000 drops. - Every other currency (issued tokens) carries 16 significant digits. Beyond that, trailing precision is lost.
Timing and confirmation
The oracles collect commands and submit them to the ledger in batches, up to sixteen at a time, every few seconds. Add ledger validation on top and a tip typically settles within ten to thirty seconds of posting.
The bot does not reply to you. There is no confirmation post, no like, no DM. Check your balance if you want to be sure something landed.
Things that quietly don't work
The bot fails silently. An unparseable command is simply ignored, with no error posted back at you. The playground at the top of this page uses the same rules, so try a post there first. Common causes:
| You posted | Why nothing happened |
|---|---|
@alice @xahtipbot 5 | Missing the + |
@alice @xahtipbot +5 FOO | A token with no issuer that isn't an official shortcut |
@alice @xahtipbot +5 XAH:rIssuer | XAH can't have an issuer |
@alice @xahtipbot +1 thanks | The word right after the amount is read as a currency code, and “thanks” isn't one |
@alice @xahtipbot +1,000 | Ambiguous comma: write +1000 |
@alice @xahtipbot +5XAH | Currency stuck to the amount: needs a space |
alice @xahtipbot +5 | "alice" as plain text isn't a mention. (As a reply, this tips the author of the post instead.) |
@xahtipbot +5 @alice, as a reply | Tips the author of the post you're replying to, not @alice: a handle typed after the bot doesn't count on a reply. Put it first: @alice @xahtipbot +5 |
@yourself @xahtipbot +5 | Tips to yourself are ignored |
@xahtipbot withdraw 10 to rAddr | Withdrawals must state a currency |
Two more worth knowing:
- Short outages are caught up. If an oracle is offline for a while, it looks back through X for the posts it missed when it restarts, up to a day back by default. Retweets never count as a command, whoever posts them.
- Editing or deleting your post afterwards doesn't undo a tip. The command is read once, at the moment it's seen, and acted on from there. Deleting the post won't claw the funds back, and editing it can't make it tip twice.
Etiquette
- Tip in public. The whole point is that it's visible, and a tip in a reply is a much louder thank-you than a like.
- Don't tip yourself. The bot ignores it, and it clutters the timeline.
- Don't spam commands to test the parser. Try it in the playground above, then post once, wait, and check your balance.
TipBot