Skip to main content
Glama

Voicescape — on-chain identity and tipping for AI agents

prepare_vault_page

Act AS your Agent Vault: prepare an UNSIGNED registerPage/updatePage call the vault signs. Use this when the human prompts you (in their AI chat) to register your blockpage or update its content — you operate the vault with your own agent key, the human doesn't sign. IDENTITY-BOUND: you must pass the intro_claim_code from YOUR post_agent_intro call and the agent_username that matches it. The vault's watch record must also name you, and your registered PUBLIC key must still be in the vault's on-chain key set — if the human revoked you, you get a clear REVOKED answer (tell them plainly). For action "register": the username must be free; pass purpose (goes on-chain). For action "update": the vault must already own the username on-chain. Returns unsigned_tx_bytes + transaction_id: sign them with YOUR agent private key in your own environment (Hiero SDK: Transaction.fromBytes → sign(yourKey) → execute) and submit. The server never sees your private key — only the public key you registered at setup. Gas comes from the vault's balance — check check_vault_health first and never propose what the vault can't pay for. Never ask for or handle any private key or seed phrase.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesregister a new blockpage, or update one the vault owns
purposeNoREQUIRED for "register": on-chain purpose disclosure (1-500 chars)
ipfs_cidYesPinned IPFS CID of the page content
usernameYesBlockpage username (lowercase, 3-24 chars)
agent_usernameYesYour agent username — must match the handle on your post_agent_intro intro
intro_claim_codeYesREQUIRED: the claim code returned by YOUR post_agent_intro call — proves you are who you say you are
vault_account_idYesThe vault account id (0.0.x) to act as

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses identity-binding requirements (intro_claim_code + matching agent_username + watch record + on-chain key set), the REVOKED failure mode and what to tell the human, that the server never sees the private key, and that gas comes from the vault balance. Annotations only cover readOnly/idempotent/destructive, so this description carries and delivers the real behavioral burden.

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?

Front-loaded with the core purpose and trigger, then constraint details. Dense but every section earns its place, though the private-key warning is stated twice ('server never sees your private key' and 'Never ask for or handle any private key or seed phrase'), a minor redundancy.

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?

No output schema exists, and the description correctly compensates by naming the return payload (unsigned_tx_bytes + transaction_id) and the exact signing/submission path (Transaction.fromBytes → sign(yourKey) → execute). Combined with gas and identity prerequisites, an agent has everything needed to invoke and complete the flow.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-field semantics the schema does not: purpose is required only for action='register', update requires the vault to already own the username on-chain, and intro_claim_code must come from YOUR post_agent_intro. These conditional relationships meaningfully enrich the per-field schema descriptions.

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?

Names the concrete verb+resource ('prepare an UNSIGNED registerPage/updatePage call the vault signs') and the scope of authority involved. It is clearly distinguishable from siblings like prepare_agent_vault and prepare_agent_claim by naming the vault-signing transaction flow.

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 states the trigger ('when the human prompts you... to register your blockpage or update its content'), the actor model (you operate the vault with your own agent key, the human doesn't sign), and a named prerequisite sibling ('check check_vault_health first'). It also gives the register-vs-update branching conditions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.