Skip to main content
Glama

Prepare a Bopster market question

prepare_market_question

Validates a Bopster market question from approved templates, checks site, backend, and factory rules, pins metadata to IPFS, and returns the unsigned Reality.eth askQuestion transaction.

Instructions

Step 2 of creating a Bopster market. The question is built from one of the five Bopster templates (price threshold, event outcome, before a date, price change, compare assets), worded exactly as bopster.fun words it; free-text questions are not accepted. Checks the market against every rule the site, the backend and the factory enforce, pins its metadata to IPFS, and returns the unsigned Reality.eth askQuestion transaction. Non-custodial: nothing is signed or sent here.

Input Schema

NameRequiredDescriptionDefault
nonceYesThe nonce from get_login_message.
titleYesShort title shown on the market card, e.g. "BTC above $90K on Oct 12".
walletYesThe wallet that will sign and send the transactions (0x...). Balances and positions are read for this address.
categoryYesOne of Crypto, Tech, Internet, Business, Entertainment, Sports, Culture, Politics, Science, General (others are accepted, but can't be filtered for).
end_timeYesWhen positions close: ISO 8601 with a timezone, on a whole minute, e.g. "2026-10-12T18:00:00Z". 20 minutes to 10 days from now. For a match, the kick-off.
templateYesThe question, as one of the five Bopster templates. Free-text questions are not accepted.
signatureYesThe personal_sign signature of the login message.
source_urlYesThe public page that will settle the answer.
accept_termsYesCreating a market accepts Bopster Fun's Terms and Conditions of Use, the same as on bopster.fun/create.
creator_nameNoDisplay name for wallets without a Bopster profile. Ignored when the wallet has one: its alias is used.
sports_matchNoRequired when category is Sports. For a single match, the sport (end_time is then the kick-off, and the sport sets the resolution delay: football 180 min, knockout 240, basketball 180, ice hockey 210, rugby 180, American football/baseball 240, Formula 1 240); "other" for a sport not listed (set the delay yourself); "not_a_match" for transfers, tournaments and the like.
resolution_delay_minutesNoHow long after close the oracle may answer: long enough for the result to exist. One of 15, 30, 60, 120, 180, 210, 240, 300, 360, 720, 1440, 2880, 4320, 5760, 7200; default 30. The question names close plus this delay as its deadline. Set by the sport for a match.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the validation layer (site, backend and factory rules), the IPFS metadata pinning side effect, the exact return artifact, and the absence of signing/broadcast. It stops short of stating failure behaviour, idempotency, or what happens if validation fails, which keeps it at a 4 rather than 5.

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

Conciseness5/5

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

Four sentences, each doing distinct work: sequence, input constraint, processing/validation, output and safety boundary. The step number and the template restriction are front-loaded before the behavioural detail, and no sentence is redundant with the title or annotations.

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

Completeness4/5

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

For a 12-parameter, 9-required tool with no output schema, the description covers the essentials: what it produces (unsigned transaction), what it costs side-effect-wise (IPFS pin, nothing sent), and the hard input constraint. Authentication mechanics are delegated to the schema's wallet/nonce/signature descriptions, which is acceptable, though a sentence on ordering relative to sibling steps would close the remaining gap.

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 description coverage is 100%, so every one of the 12 parameters is already documented, including the template oneOf branches and their per-field constraints. The description adds only the framing that the template must be one of the five named shapes with site-exact wording, which is a modest gloss on what the schema already enforces.

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?

A specific verb-plus-resource statement: it names the step (2 of creating a Bopster market), the constrained input space (five templates, no free-text), and the concrete outcome (validation, IPFS pinning, unsigned Reality.eth askQuestion transaction). An agent can distinguish this from prepare_market_launch and register_market because it is the question-preparation step that produces an unsigned tx rather than launching or registering anything.

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

Usage Guidelines4/5

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

It establishes clear sequencing ('Step 2 of creating a Bopster market') and an exclusion ('free-text questions are not accepted'), and clarifies the non-custodial boundary ('nothing is signed or sent here'). It does not name the sibling tools that come before or after (get_login_message, prepare_market_launch, register_market), so the agent must infer the workflow edges from the sibling list rather than being routed explicitly.

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