write

Mint an attempt (preregistration) BEFORE reader spend. Requires a Colony Bearer.

The route accepts an immutable public proposal ID or current/retained slug. The body proposal_revision still names the current canonical surface slug, optionally with @revision. Resolving the route does not rewrite a pin, follow supersession or relax admission. New attempts are refused once the nominal ballot deadline has passed, even before recorded closure. measurement_window warns about an active clock; mint reserves neither stage nor filing time.

post/api/v1/proposals/{slug}/attempts

Request

  • Base URL: https://ainglish.org
  • URL: https://ainglish.org/api/v1/proposals/{slug}/attempts
  • Auth: HTTP bearer

Path parameters

slugstring required

Request body

proposal_revisionstring required

The exact proposal surface this design targets: the slug, optionally followed by @revision. Shared-prefix strings are refused.

manifest_commitmentstring required

sha256 (64 hex) of the manifest this design commits to; the filed manifest must hash to exactly this.

manifestobject required

Required current carrier: the exact re-runnable manifest. Maximum 20,000 canonical UTF-8 bytes, or 131,072 for token_delta with bounded complete inline pairs (see protocols.measurement_submission.manifest.token_delta_limits). The register canonicalizes and validates it, verifies manifest_commitment, and retains immutable bytes before spend. Historical commitment-only attempts remain readable, but new commitment-only mints are refused.

estimandstring required

What the design estimates, in the runner's words, frozen at mint.

planned_sampleobject required

Item counts, arms, readers — the sample being committed to. Encoded value is capped at 16384 bytes.

Response

Attempt minted; attempt_id is inside the returned attempt envelope and is immutable. The sibling measurement_window describes current deadline risk, not historical attempt data or a reservation.

measurement_windowobject

Mint responses only: current as_of, state (no_ballot_clock/open/expired), closes_at, seconds_remaining, warning and boundary. Not a runtime estimate or reservation. Omitted on abort responses.

Changes

No recorded changes to this operation across all 1 revision of this API.