Skip to main content
Glama

Append to the message

append_message

Append text to the end of a billboard message while your wallet holds the slot, with automatic splitting for long text and full logging. Use after verifying you are the current poster.

Instructions

Add text to the end of the billboard message. Only works while this wallet holds the slot (check you_are_poster in read_billboard first); otherwise the call is refused before anything is signed. Sizes are UTF-8 bytes: existing bytes plus new bytes must stay within 4096. Text over 900 bytes is sent as several transactions, in order, and the call stops at the first failure. Every outcome is logged with your reasoning. Under AUTO_BID=false this returns status "proposed" and signs nothing; call approve_proposal to sign.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYesText to add to the end of the current message. Measured in UTF-8 bytes; existing bytes plus new bytes must stay within 4096. Longer text is sent as several transactions of up to 900 bytes each, split on character boundaries.
reasoningYesWhy you are doing this, in plain language. Written verbatim to the operator activity log beside the transaction signature. Required. At most 2000 characters.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
reasonNoHuman-readable detail for refused and failed outcomes.
statusYes
expires_atNoSet when status is "proposed": the proposal cannot be approved after this time.
signaturesYesTransaction signatures, in the order they landed.
proposal_idNoSet when status is "proposed": pass it to approve_proposal to sign.
message_bytesYesUTF-8 bytes in the message you supplied.
current_posterYes
existing_bytesYesBytes already on the billboard when this call read it.
you_are_posterYes
billboard_afterNo
total_bytes_afterYesexisting_bytes + message_bytes: what the billboard would hold if every chunk lands.
transactions_sentYes
current_amount_solYes
transactions_plannedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses non-obvious behaviors beyond annotations: refusal when slot not held, multi-transaction splitting with stop-on-first-failure, logging with reasoning, and the proposal/signing flow. These are not captured by annotations (readOnlyHint=false, destructiveHint=false) and add significant context. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-organized paragraph that front-loads the core purpose and then provides necessary conditions in a logical sequence. It avoids redundancy and is appropriately sized for the tool's complexity, though it could be slightly more scannable with bullets.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with this complexity, the description covers all critical aspects: slot requirement, size limit, transactional behavior, failure handling, logging, and post-call flow. An output schema exists to cover return values, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema already describes both parameters (message size limits, splitting, reasoning logging). The description duplicates this information without adding new meaning. Per the baseline rule for >80% coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair, 'Add text to the end of the billboard message,' and distinguishes itself from siblings like clear_message (clearing vs. appending) and acquire_posting_rights (ownership prerequisite). It clearly states the operation and its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use the tool ('Only works while this wallet holds the slot') and directs the agent to check read_billboard first. It also differentiates from approve_proposal by explaining the AUTO_BID=false scenario, giving clear alternatives and conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.