Register a community bot
Registers a bot that gates a chat on holdings of one token. The bot's own platform token is **not** accepted here and putty never stores one: the bot runs on the user's own host, which holds the credential. What this registers is the gate — the chain, the token, and the chat — which is the part putty can prove and the host cannot. Both auto-post switches default to false. A bot that posts every Receipts update and every countdown on its own spends the community's attention, so turning them on is a separate, deliberate call.
Registers a bot that gates a chat on holdings of one token. The bot's own platform token is not accepted here and putty never stores one: the bot runs on the user's own host, which holds the credential. What this registers is the gate — the chain, the token, and the chat — which is the part putty can prove and the host cannot. Both auto-post switches default to false. A bot that posts every Receipts update and every countdown on its own spends the community's attention, so turning them on is a separate, deliberate call.
Authorization
bearerAuth A bearer token. The Account routes accept a Privy access token; the MCP transport accepts an sk- API key issued by POST /account/api-keys.
In: header
Request Body
application/json
The chat, the chain, and the gated token.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/community/bots" \ -H "Content-Type: application/json" \ -d '{ "platform": "telegram", "chatId": "string", "displayName": "string", "chainSlug": "ethereum", "tokenAddress": "string" }'{ "id": "string", "ownerId": "string", "platform": "telegram", "chatId": "string", "displayName": "string", "chainSlug": "ethereum", "tokenAddress": "string", "tokenSymbol": "string", "autoPostReceipts": true, "postCountdowns": true, "createdAt": "string", "updatedAt": "string"}List the caller's community bots GET
Every bot the caller has registered, newest first. Scoped to the caller: another user's bot is not in this list and is not reachable by id either. There is no community-wide list, because a bot carries a chat id on it and the community's membership is not putty's to publish.
Get one community bot GET
One bot the caller owns. A missing id, a deleted id, and another user's id all return the same 404 with the same message. A route that could tell them apart would be an id oracle for other users' bots.