# Resolve a question with ask

## Two routes to a bound function

Inspect the catalog with `inspect subject:functions`. For a known Function,
inspect its `params` and `row` schemas and call `bind`. For a question in words,
`ask` selects a catalog Function and binds its scope. It keeps addresses written
in the question or supplied in `params`; it does not invent an address to
resolve a brand name. When an address is missing, a params suggestion can offer
already-landed Bound Functions on that chain. It authors nothing. A question
that no catalog Function answers returns `error` / `unsupported`, naming what
it `needs`.

`bind_prompt` is no longer advertised. The older authoring fields `address`, `context`, `shape`, and `explain` are not accepted by `ask`. This page retains its historical URL so existing links still work.

## A deliberate ask

```json
{"tool":"ask","arguments":{"metric":"<PRECISE_METRIC_REQUEST>","chain_id":1,"function_slug":"<ADVERTISED_FUNCTION_SLUG>","params":{"<SCOPE_FIELD>":"<OPERATOR_VALUE>"},"from_block":100,"to_block":110}}
```

Only `metric` and `chain_id` are required by the wire schema. `function_slug`, `params`, and paired block ends are optional inputs. Replace placeholders with the selected Function's advertised scope fields. The question is limited to 500 characters. An address not supplied by the operator must not be invented.

## A suggestion is a question

A `suggested` outcome writes nothing. Its `kind` is `params` or `window`; show
the returned `card`, chain facts, and missing parameters where provided. A
params response may include up to five `options`, each naming a landed
`function_slug`, `bound_function_id`, and the `params` that would bind the asked
Function. Let the operator choose one, if any. Merge the answer into the
original request under the field named by `resume`, then repeat. Never choose a
period or economic tradeoff merely because it looks reasonable. Supply both
block ends together.

## Examine the resolution

On success, preserve the returned card's bound-function identity and scope, `description`, `row`, `created`, `follow`, and retention disclosure. `name` is a debug label, not an identity accepted by data tools. `follow.already_indexed` and an optional checkpoint do not prove full coverage of your requested window.

Inspect coverage, materialize missing blocks, settle authorized quotes, inspect jobs, read values, and request provenance. Resolution does not deliver a paid read or bypass the usual execution path. Unsupported questions require an appropriate catalog capability; repeating the request cannot author one.
