putty
MCPCommunity

Community

Check a wallet against a community's token. Free, and it posts nothing to any chat.

The Community category is one tool, community_verify_wallet: the holder gate the Community Kit runs before it lets someone into a gated chat.

It reads the wallet's balanceOf through the same chain client the rest of putty uses, and answers with the balance and the holder census for that token. Free: no credits, no signature, and nothing is posted to Discord or Telegram.

Two refusals, deliberately different

A wallet with a balance of zero is an error, not a verified: false. That refusal is the product, so it comes back as an isError carrying the sentence the chat would have shown.

A chain read that could not answer is a second, different error, and the two are kept distinguishable. "You are not a holder" is an answer; "we could not check" is a failure. Collapsing them would show a member an error where they should have seen a refusal.

holders is null when the census needs an indexed transfer log this deployment does not own. That is not the same as "0", which is counted-and-none.

chatLine carries the exact line a chat would show, so the phrasing is the module's rather than the model's.

What is deliberately not here

The chat side of this module is absent, and it is not an oversight. runCommand, postCountdown, and postReceiptUpdate all end in a message sent to a Discord or Telegram server on a user's behalf. Sending a message to a third party is irreversible — there is no recall — and it spends a community's attention every time it lands, which is exactly what an auto-posting bot gets muted for.

No approval type covers "speak as the user to a third party", and a tool that did it on a model's say-so would be the worst thing in this registry. What is here is the part of the module that is a read: the holder gate, which costs nothing and decides nothing on its own.

On this page